{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:51.487072Z",
     "start_time": "2019-11-25T02:33:50.312423Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "from matplotlib import pyplot as plt\n",
    "plt.style.use('fivethirtyeight')\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:51.960046Z",
     "start_time": "2019-11-25T02:33:51.489457Z"
    }
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import classification_report,confusion_matrix\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## EDA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:52.039896Z",
     "start_time": "2019-11-25T02:33:51.962837Z"
    }
   },
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"cardio_train.csv\",sep=\";\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:52.075295Z",
     "start_time": "2019-11-25T02:33:52.042326Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>age</th>\n",
       "      <th>gender</th>\n",
       "      <th>height</th>\n",
       "      <th>weight</th>\n",
       "      <th>ap_hi</th>\n",
       "      <th>ap_lo</th>\n",
       "      <th>cholesterol</th>\n",
       "      <th>gluc</th>\n",
       "      <th>smoke</th>\n",
       "      <th>alco</th>\n",
       "      <th>active</th>\n",
       "      <th>cardio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>18393</td>\n",
       "      <td>2</td>\n",
       "      <td>168</td>\n",
       "      <td>62.0</td>\n",
       "      <td>110</td>\n",
       "      <td>80</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>20228</td>\n",
       "      <td>1</td>\n",
       "      <td>156</td>\n",
       "      <td>85.0</td>\n",
       "      <td>140</td>\n",
       "      <td>90</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>18857</td>\n",
       "      <td>1</td>\n",
       "      <td>165</td>\n",
       "      <td>64.0</td>\n",
       "      <td>130</td>\n",
       "      <td>70</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>17623</td>\n",
       "      <td>2</td>\n",
       "      <td>169</td>\n",
       "      <td>82.0</td>\n",
       "      <td>150</td>\n",
       "      <td>100</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>17474</td>\n",
       "      <td>1</td>\n",
       "      <td>156</td>\n",
       "      <td>56.0</td>\n",
       "      <td>100</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id    age  gender  height  weight  ap_hi  ap_lo  cholesterol  gluc  smoke  \\\n",
       "0   0  18393       2     168    62.0    110     80            1     1      0   \n",
       "1   1  20228       1     156    85.0    140     90            3     1      0   \n",
       "2   2  18857       1     165    64.0    130     70            3     1      0   \n",
       "3   3  17623       2     169    82.0    150    100            1     1      0   \n",
       "4   4  17474       1     156    56.0    100     60            1     1      0   \n",
       "\n",
       "   alco  active  cardio  \n",
       "0     0       1       0  \n",
       "1     0       1       1  \n",
       "2     0       0       1  \n",
       "3     0       1       1  \n",
       "4     0       0       0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:52.179794Z",
     "start_time": "2019-11-25T02:33:52.078881Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 70000 entries, 0 to 69999\n",
      "Data columns (total 13 columns):\n",
      "id             70000 non-null int64\n",
      "age            70000 non-null int64\n",
      "gender         70000 non-null int64\n",
      "height         70000 non-null int64\n",
      "weight         70000 non-null float64\n",
      "ap_hi          70000 non-null int64\n",
      "ap_lo          70000 non-null int64\n",
      "cholesterol    70000 non-null int64\n",
      "gluc           70000 non-null int64\n",
      "smoke          70000 non-null int64\n",
      "alco           70000 non-null int64\n",
      "active         70000 non-null int64\n",
      "cardio         70000 non-null int64\n",
      "dtypes: float64(1), int64(12)\n",
      "memory usage: 6.9 MB\n"
     ]
    }
   ],
   "source": [
    "#无缺失\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:52.357515Z",
     "start_time": "2019-11-25T02:33:52.182522Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>age</th>\n",
       "      <th>gender</th>\n",
       "      <th>height</th>\n",
       "      <th>weight</th>\n",
       "      <th>ap_hi</th>\n",
       "      <th>ap_lo</th>\n",
       "      <th>cholesterol</th>\n",
       "      <th>gluc</th>\n",
       "      <th>smoke</th>\n",
       "      <th>alco</th>\n",
       "      <th>active</th>\n",
       "      <th>cardio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "      <td>70000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>49972.419900</td>\n",
       "      <td>19468.865814</td>\n",
       "      <td>1.349571</td>\n",
       "      <td>164.359229</td>\n",
       "      <td>74.205690</td>\n",
       "      <td>128.817286</td>\n",
       "      <td>96.630414</td>\n",
       "      <td>1.366871</td>\n",
       "      <td>1.226457</td>\n",
       "      <td>0.088129</td>\n",
       "      <td>0.053771</td>\n",
       "      <td>0.803729</td>\n",
       "      <td>0.499700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>28851.302323</td>\n",
       "      <td>2467.251667</td>\n",
       "      <td>0.476838</td>\n",
       "      <td>8.210126</td>\n",
       "      <td>14.395757</td>\n",
       "      <td>154.011419</td>\n",
       "      <td>188.472530</td>\n",
       "      <td>0.680250</td>\n",
       "      <td>0.572270</td>\n",
       "      <td>0.283484</td>\n",
       "      <td>0.225568</td>\n",
       "      <td>0.397179</td>\n",
       "      <td>0.500003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>10798.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>55.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>-150.000000</td>\n",
       "      <td>-70.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>25006.750000</td>\n",
       "      <td>17664.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>159.000000</td>\n",
       "      <td>65.000000</td>\n",
       "      <td>120.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>50001.500000</td>\n",
       "      <td>19703.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>165.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>120.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>74889.250000</td>\n",
       "      <td>21327.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>170.000000</td>\n",
       "      <td>82.000000</td>\n",
       "      <td>140.000000</td>\n",
       "      <td>90.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>99999.000000</td>\n",
       "      <td>23713.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>250.000000</td>\n",
       "      <td>200.000000</td>\n",
       "      <td>16020.000000</td>\n",
       "      <td>11000.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 id           age        gender        height        weight  \\\n",
       "count  70000.000000  70000.000000  70000.000000  70000.000000  70000.000000   \n",
       "mean   49972.419900  19468.865814      1.349571    164.359229     74.205690   \n",
       "std    28851.302323   2467.251667      0.476838      8.210126     14.395757   \n",
       "min        0.000000  10798.000000      1.000000     55.000000     10.000000   \n",
       "25%    25006.750000  17664.000000      1.000000    159.000000     65.000000   \n",
       "50%    50001.500000  19703.000000      1.000000    165.000000     72.000000   \n",
       "75%    74889.250000  21327.000000      2.000000    170.000000     82.000000   \n",
       "max    99999.000000  23713.000000      2.000000    250.000000    200.000000   \n",
       "\n",
       "              ap_hi         ap_lo   cholesterol          gluc         smoke  \\\n",
       "count  70000.000000  70000.000000  70000.000000  70000.000000  70000.000000   \n",
       "mean     128.817286     96.630414      1.366871      1.226457      0.088129   \n",
       "std      154.011419    188.472530      0.680250      0.572270      0.283484   \n",
       "min     -150.000000    -70.000000      1.000000      1.000000      0.000000   \n",
       "25%      120.000000     80.000000      1.000000      1.000000      0.000000   \n",
       "50%      120.000000     80.000000      1.000000      1.000000      0.000000   \n",
       "75%      140.000000     90.000000      2.000000      1.000000      0.000000   \n",
       "max    16020.000000  11000.000000      3.000000      3.000000      1.000000   \n",
       "\n",
       "               alco        active        cardio  \n",
       "count  70000.000000  70000.000000  70000.000000  \n",
       "mean       0.053771      0.803729      0.499700  \n",
       "std        0.225568      0.397179      0.500003  \n",
       "min        0.000000      0.000000      0.000000  \n",
       "25%        0.000000      1.000000      0.000000  \n",
       "50%        0.000000      1.000000      0.000000  \n",
       "75%        0.000000      1.000000      1.000000  \n",
       "max        1.000000      1.000000      1.000000  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:55.556766Z",
     "start_time": "2019-11-25T02:33:52.360148Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu0AAAHfCAYAAADk5OZcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3dfbylZV0v/s93GECD4cGwYYAxwIaS8neUyHwoTS3QKQ+WpPgQoJYexU5hmlidIpVfmidNOx3sVxDo0YjXqCeOTSpanXwAQYoheWpGhcOMg5w0GQYVHLh+f6x7aDPM3rNm9r32vvee9/v12q+91rXudT3sta69P/ta17pXtdYCAAAM15L57gAAADAzoR0AAAZOaAcAgIET2gEAYOCWzncH+nbnnXd6Zy0AAAvWwQcfXDuWWWkHAICBE9oBAGDghHYAABg4oR0AAAZOaAcAgIFbdGePAQBg79Jay9atW3P//ffPd1fGsmTJkhx44IGpeshJYqYltAMAsKBt3bo1+++/f/bbb7/57spY7r333mzdujXLli0b+z62xwAAsKDdf//9CyawJ8l+++23268KCO0AADBwQjsAAAyc0A4AAGN61atelbe85S1Jks9+9rM58cQT56RdoR0AAPbAk5/85Hz+85+fk7aEdgAA2MG2bdvmuwsPIrQDALDobNy4MS95yUvy6Ec/Osccc0xe//rX58tf/nKe85zn5Jhjjsmxxx6bX/qlX8o3vvGNB+7z2Mc+Nn/4h3+YJz/5yTniiCOybdu2rFu3Lk996lNz1FFH5aUvfWnuueeeB47/1Kc+leOPP/6B6zfffHN++qd/Oo961KPyxCc+MWvXru1tPEI7AACLyn333ZcXvOAFWblyZa677rrceOON+bmf+7m01vLa1742N910U6666qps3Lgxb33rWx903zVr1uTSSy/Nrbfemvvvvz8vfvGL84IXvCBf/vKX89znPjeXXXbZTtv8zne+k9NOOy3PeMYzsmHDhrztbW/LK17xiqxfv76XMQntAAAsKtdcc01uv/32vPnNb84BBxyQhz3sYXnSk56UY489Nk9/+tOz//7757DDDstZZ52Vz3zmMw+67ytf+cocddRRefjDH56rr74627Zty6tf/ersu+++OeWUU3LCCSfstM2rr746d999d84+++zst99+edrTnpaTTz45a9as6WVMPhEVAIBFZdOmTVm5cmWWLn1w1L3jjjtyzjnn5IorrsjWrVtz//3355BDDnnQMUcdddQDl2+//fasWLEiVfVA2cqVK3fa5u23354jjzwyS5YsedCxmzdv7mNIVtoBAFhcjjzyyGzcuPEhbyZ905velKrKZz/72dx22235kz/5k7TWHnTM1IC+fPnybN68+UHHbNy4cadtHn744dm0adODPul048aNWbFiRR9DEtoBAFhcfviHfzjLly/Pueeem7vvvjvf/va3c+WVV2br1q054IADctBBB+UrX/lK/uiP/mjGep7whCdk6dKlec973pPvfOc7ueyyy3LNNdfs9NgTTzwxD3/4w/Oud70r3/nOd/KpT30qH/3oR/O85z2vlzEJ7QAALCr77LNPLrnkknzpS1/KD/3QD+X444/Phz70obzhDW/IunXr8qhHPSrPf/7z8zM/8zMz1rPffvvlfe97Xz7wgQ/kmGOOyYc//OE85znPmfbYSy65JJdffnke/ehH53Wve13OP//8HHfccb2MqXZ8SWChu/POOxfXgAAAmNGdd96Zgw8+eL67sVtm6vPBBx9cO5Z5IyoAwBxafdFduzxm7ZnL5qAnLCS2xwAAwMAJ7QAAMHC2xwDAXmCcLRmJbRkwVFbaAQBg4IR2AAAYOKEdAAAGzp52AAAWnTVb1vRa36kHnTrWcZ/4xCdyzjnn5L777svpp5+es88+u5f2rbQDAEAP7rvvvrzuda/LmjVr8rnPfS5r1qzJTTfd1EvdVtoBgAXBGXAYumuuuSbHHntsjj766CTJ8573vKxduzY/8AM/MOu6rbQDAEAPNm/enCOPPPKB60cccUQ2b97cS91COwAADJzQDgAAPVixYkU2bdr0wPWvfOUrWbFiRS91C+0AANCDE044IV/84hdzyy235N57780HP/jBPPvZz+6lbm9EBQBg0Rn3FI19Wrp0ad7+9rfnec97Xu6777685CUvyWMe85h+6u6lFgAAICeddFJOOumk3uu1PQYAAAZOaAcAgIET2gEAYOCEdgAAGDihHQAABs7ZYwDmwZota8Y6bj5OWQbA8AjtAAAsOqsvuqvX+taeuWyXx5x11ln52Mc+lkc+8pG54oorem3f9hgAAOjBi170oqxZM94rqbtLaAcAgB485SlPyaGHHjqRuoV2AAAY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\n",
      "text/plain": [
       "<Figure size 792x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import rcParams\n",
    "rcParams['figure.figsize'] = 11, 8\n",
    "df['years'] = (df['age'] / 365).round().astype('int')\n",
    "sns.countplot(x='years', hue='cardio', data = df, palette=['lightgreen', 'dodgerblue'])\n",
    "plt.savefig('pics/Age.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以观察到55岁以上的人更容易得心血管疾病的。 从上面的表格中，我们可以看到ap_hi, ap_lo, weight 和height中有异常值。我们以后再处理。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:33:58.581524Z",
     "start_time": "2019-11-25T02:33:55.560192Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvMAAAHfCAYAAADdg1cHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3de7glVX0u6u8HLRfDpVEJIne3bRLUY0S8cMQ8XtsGs4VEMMGYRsKJimCyPXErurM18RbdOQlgjolJBIUkKhdjRDaRtCgKiVwjoqCm2wtCC2JEWghysRn7j1lNFu1a3b1w9ZxrrH7f55nPrBo1qmrUnNVzfj1W1ZjVWgsAANCfrSbdAAAA4MER5gEAoFPCPAAAdEqYBwCATi2adAPGZc2aNe70BQCgWzvvvHOtX6ZnHgAAOiXMAwBAp4R5AADolDAPAACdEuYBAKBTW8xoNjNpreWOO+7IfffdN+mmzGirrbbKDjvskKqfuIEZAIAt2BYf5u+4445su+222WabbSbdlBndc889ueOOO7LjjjtOuikAAMwjW/xlNvfdd9+8DvJJss0228zrvxwAADAZW3yYBwCAXgnzAADQKWF+Dl188cXZf//9J90MAAC2EMI8AAB0SpgHAIBOCfPTOPnkk7N8+fIHlL3hDW/I61//+vzt3/5tnvrUp2bPPffME5/4xHzgAx+YcTuLFy/ON77xjfvnjzvuuLz97W+/f/6Tn/xkDj744Oy9995ZunRpvvzlL8/9wQAAsGAJ89P41V/91axYsSK33357kmTt2rX5h3/4hxx55JHZddddc+aZZ+aGG27Ie9/73rzpTW/K1VdfPet9fPGLX8wJJ5yQk08+Od/85jfz8pe/PEcddVTuvvvuuT4cAAAWKGF+GnvvvXee+MQn5rzzzkuSfO5zn8v222+fpzzlKXnBC16Q/fbbL1WVgw8+OM9+9rPz+c9/ftb7OP300/Pyl788Bx54YLbeeuu89KUvzbbbbpsrrrhirg8HAIAFSpifwRFHHJGPfvSjSZKzzz47RxxxRJJkxYoVed7znpd99903e++9d1asWJHvf//7s97+up79vffe+/7H6tWrc/PNN8/pcQAAsHAJ8zM4/PDDc8kll2T16tU577zzcuSRR+buu+/O8uXL85rXvCYrV67Mt7/97Tz/+c+fcRsPfehDc+edd94/f8stt9w/vccee+T3fu/38u1vf/v+x0033XT/fxoAAGBjhPkZPOIRj8jBBx+c448/Pvvss09+7ud+Lvfcc0/uvvvuPPzhD8+iRYuyYsWKfOYzn5lxG094whNyzjnnZO3atfnUpz6Vf/7nf75/2dFHH50PfOADufLKK9Nay3/8x3/kggsuuP86fQAA2BhhfgOOOOKIXHTRRTnyyCOTJDvuuGPe/e5355hjjsk+++yTs88+O4cccsiM67/rXe/KJz/5yeyzzz4566yz8sIXvvD+ZU960pNyyimn5L//9/+effbZJwcccEA+9KEPbfZjAgBg4ajW2qTbMBZr1qyZ9kDXrFmTnXfeedzNmbVe2gkAwOax88471/pliybREABgeo/788vHur9rX/3Use4PmFsuswEAgE4J8wAA0ClhHgAAOiXMAwBAp4R5AADolDAPAACdMjTleuZ6SLBNHfLrU5/6VE488cSsXbs2y5cvz2tf+9o5bQcAAAuPnvl5YO3atXnd616Xc845J5dddlnOOeecfPWrX510swAAmOeE+XngqquuyqMf/ejsu+++2WabbfLiF784559//qSbBQDAPCfMzwM33XRT9thjj/vnH/WoR+Wmm26aYIsAAOiBMA8AAJ0S5ueB3XffPatXr75//jvf+U523333CbYIAIAeCPPzwAEHHJCvf/3r+da3vpV77rknH/3oR3PIIYdMulkAAMxzhqZcz6YOJTmXFi1alD/+4z/Oi1/84qxduzYve9nL8gu/8AtjbwcAAH0R5ueJpUuXZunSpZNuBrAZzfXvWGzMJDonABgvl9kAAECnhHkAAOiUMA8AAJ0S5gEAoFPCPAAAdEqYBwCAThmacj23v/aoOd3ejid9eKN1jj/++FxwwQXZdddd8/nPf35O9w8AwMKlZ34eeOlLX5pzzjln0s0AAKAzwvw88IxnPCO77LLLpJsBAEBnhHkAAOiUMA8AAJ0S5gEAoFPCPAAAdMrQlOvZlKEk59qxxx6bSy65JN///vez//7758QTT8zy5cvH3g4AAPoizM8Dp5566qSbAABAh1xmAwAAnRLmAQCgU8I8AAB0SpgHAIBOCfMAANCpsYX5qlpcVedU1Ver6itVdVBVPayqVlTVyuF5l6FuVdV7qmpVVV1TVQdM2c7RQ/2VVXX0lPInV9WXhnXeU1U1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\n",
      "text/plain": [
       "<Figure size 792x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#让我们看看数据集中的分类变量及其分布：\n",
    "df_categorical = df.loc[:,['cholesterol','gluc', 'smoke', 'alco', 'active']]\n",
    "sns.countplot(x=\"variable\", hue=\"value\",data= pd.melt(df_categorical))\n",
    "plt.savefig('pics/Categorical.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:00.754639Z",
     "start_time": "2019-11-25T02:33:58.585990Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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wCWZOaOs7zTgiog4G3iAIpCUJEkaMJoS2GXmnUB0sunmVZQ5Bzink/SbOyuXmU9SzJqVJEkakHzyhCRJUkUY2EmSJFWEgZ0kSVJFGNhJkiRVhIGdJElSRRjYSZIkVYSBnSRJUkU09VmxklR1i754ZN15171gSi+2RNJA5BE7SZKkivCInSRJUo377rtv0IgRI04dOnToe2jdg2Arly1b9vjixYu/PXHixJXtiQZ2kiRJNUaMGHHqxhtvfNjw4cNXdp+77yxZsuR9c+fOBTivPa1Vo1BJkqQ+MXTo0Pe0elAHMHz48JXlUcU3GdhJkiS9XX+KjwZ1uSJJkqT+y8BOkiSpl0ydOnXdtra2v27W/gzsJEmSKsLATpIkqSIM7CRJkrpx1llnbXbIIYf8VW3aySefPPbkk08ee9FFF22444477jB69Oidtt9++/ddeOGFG3VVz6hRoyY+/vjjw9vXjznmmC1PPfXUzdvXr7nmmvV22WWX7ceMGTNhjz322O7ee+9dq5F2GthJkiR146ijjpp/5513rrdgwYJBAMuXL2fq1KnrH3744fM32WST5VdeeeWsOXPmPPDd7373qXPOOWfs73//+3c1uo+77757rS9/+ctbnn/++c88/fTTDx599NFzjz766K3feOONqLcOAztJkqRubL311ku3226716+66qr1AX7961+PHD58+Mo999zztUMOOWThdtttt2TQoEHss88+r+62226v3HHHHes0uo8f//jHGx9++OFzP/jBD742ZMgQTjzxxHnDhg3LO+64Y+166zCwkyRJqsNBBx00/9prr90A4Kqrrtrg4x//+HyAa6+9duTkyZO3Gzt27IQxY8ZM+N3vfrfevHnzGn6615w5c4Zdeumlm44ZM2ZC++uFF14YOmfOnGH11uEjxSRJkupwxBFHvHzuueeOfeqpp4beeuuto2666aY/vPHGG3HSSSdtdf755z992GGHLRg2bFgeeOCBW2Vmp3WMGDFi5WuvvfbmgbWXXnpp6OjRo5cCjB49etlJJ5303De+8Y3nV7eNHrGTJEmqw+jRo5dPnDhx0Yknnrjl5ptvvnTHHXdcvGTJkli2bNmgTTbZZNmQIUPy2muvHXnXXXeN7KqObbbZ5o0pU6ZssHz5cq677rqR991337rt2z71qU/NnTJlyia//e1v1165ciWLFi0a9POf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\n",
      "text/plain": [
       "<Figure size 618.375x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_long = pd.melt(df, id_vars=['cardio'], value_vars=['cholesterol','gluc', 'smoke', 'alco', 'active'])\n",
    "sns.factorplot(x=\"variable\", hue=\"value\", col=\"cardio\",\n",
    "                data=df_long, kind=\"count\")\n",
    "plt.savefig('pics/Categorical-Target.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以清楚地看到，CVD患者的胆固醇和血糖水平较高。而且一般来说不太活跃，运动少。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:00.772624Z",
     "start_time": "2019-11-25T02:34:00.759514Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "gender\n",
       "1    161.355612\n",
       "2    169.947895\n",
       "Name: height, dtype: float64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#为了计算“1”在性别栏中代表女性还是男性，让我们计算每个性别的身高平均值。我们假设男人平均比女人高。\n",
    "df.groupby('gender')['height'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:00.884775Z",
     "start_time": "2019-11-25T02:34:00.775092Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1    45530\n",
       "2    24470\n",
       "Name: gender, dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['gender'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:00.981001Z",
     "start_time": "2019-11-25T02:34:00.887342Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "gender\n",
       "1    1161\n",
       "2    2603\n",
       "Name: alco, dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('gender')['alco'].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:01.090246Z",
     "start_time": "2019-11-25T02:34:00.986771Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.5003\n",
       "1    0.4997\n",
       "Name: cardio, dtype: float64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['cardio'].value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:01.220840Z",
     "start_time": "2019-11-25T02:34:01.092583Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>gender</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cardio</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.327343</td>\n",
       "      <td>0.172957</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.323086</td>\n",
       "      <td>0.176614</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "gender         1         2\n",
       "cardio                    \n",
       "0       0.327343  0.172957\n",
       "1       0.323086  0.176614"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.crosstab(df['cardio'],df['gender'],normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:01.317455Z",
     "start_time": "2019-11-25T02:34:01.224024Z"
    }
   },
   "outputs": [],
   "source": [
    "#清理数据\n",
    "df.drop(df[(df['height'] > df['height'].quantile(0.975)) | (df['height'] < df['height'].quantile(0.025))].index,inplace=True)\n",
    "df.drop(df[(df['weight'] > df['weight'].quantile(0.975)) | (df['weight'] < df['weight'].quantile(0.025))].index,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:01.388496Z",
     "start_time": "2019-11-25T02:34:01.319179Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Diastilic pressure is higher than systolic one in 1082 cases\n"
     ]
    }
   ],
   "source": [
    "#此外，在某些情况下，舒张压高于收缩压，这也是不正确的。\n",
    "#去血压异常\n",
    "print(\"Diastilic pressure is higher than systolic one in {0} cases\".format(df[df['ap_lo']> df['ap_hi']].shape[0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:01.507019Z",
     "start_time": "2019-11-25T02:34:01.392974Z"
    }
   },
   "outputs": [],
   "source": [
    "df.drop(df[(df['ap_hi'] > df['ap_hi'].quantile(0.975)) | (df['ap_hi'] < df['ap_hi'].quantile(0.025))].index,inplace=True)\n",
    "df.drop(df[(df['ap_lo'] > df['ap_lo'].quantile(0.975)) | (df['ap_lo'] < df['ap_lo'].quantile(0.025))].index,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:04.245516Z",
     "start_time": "2019-11-25T02:34:01.508893Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Diastilic pressure is higher than systolic one in 0 cases\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "blood_pressure = df.loc[:,['ap_lo','ap_hi']]\n",
    "sns.boxplot(x = 'variable',y = 'value',data = blood_pressure.melt())\n",
    "plt.savefig('pics/AP-lo-hi.png', bbox_inches='tight', dpi=300)\n",
    "print(\"Diastilic pressure is higher than systolic one in {0} cases\".format(df[df['ap_lo']> df['ap_hi']].shape[0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:08.222521Z",
     "start_time": "2019-11-25T02:34:04.248019Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAIyCAYAAABfOqtgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdeVhV1f7H8feXA2gKHCdARYqkcqpug0OmYZZRlilZ3sps7jaYzemvUW24mmWTXtOumTZa2u1qeStJTUyttMEGMq1MJUwPTghqAof1+wMkDqKCE8j5vJ7nPJy993et/d379PR8XWsP5pxDRERERIJPSFUnICIiIiJVQ4WgiIiISJBSISgiIiISpFQIioiIiAQpFYIiIiIiQUqFoIiIiEiQCq3qBKoRPUdHRESkerKqTqCmUiFYSnZ2dlWngNfrBapPLtUhD1Auu6Ncyqdcyqdcys8Dqs//c0G5lLUzFzk4NDUsIiIiEqRUCIqIiIgEKRWCIiIiIkFKhaCIiIhIkFIhKCIiIhKkVAiKiIiIBCkVgiIiIiJBSoWgiIiISJBSISgiIiISpFQIioiIiAQpFYIiIiIiQUqFoIiIiEiQqrGFoJkt3M36SWZ2yaHOR0RERKS6qbGFoHPu9KrOQURERKQ6C63qBA4WM8t1zkWYmQGjgXOADCCvajMTERERqR5q7IhgKRcBLYDWwFWARgpFRERECI5CMAmY7JzzO+fWAHOqOiERERGR6iAYCkERERERKUcwFILzgEvNzGNmTYCuVZ2QiIiISHVQY28WKeW/wFnAj8Bq4LOqTUdERESkeqixhaBzLqL4rwMGVHE6IiIiItVOMEwNi4iIiEg5VAiKiIiIBCkVgiIiIiJBSoWgiIiISJBSISgiIiISpFQIioiIiAQpFYIiIiIiQUqFoIiIiEiQUiEoIiIiEqRUCIqIiIgEKRWCIiIiIkHKil7FK4BOhIiISPVkVZ1ATaURQREREZEgFVrVCVQnOTk5VZ0CkZGRAGRnZ1dxJuD1eqtFHqBcdke5lE+5lE+5lJ8HVJ//54JyKWtnLnJwaERQREREJEipEBQREREJUioERURERIKUCkERERGRIKVCUERERCRIqRAUERERCVIqBEVERESClApBERERkSClQlBEREQkSKkQFBEREQlSKgRFREREgpQKwTIWLlxI7969SUlJYdKkSbtsz8vL4/777yclJYWrr76aNWvWlGybOHEiKSkp9O7dm88++wyAtWvXctNNN9GnTx/+/ve/M3ny5JL45cuXc+2113LppZdy1113kZube9CPT0RERGQnFYKl+P1+RowYwahRo5g6dSozZ85kxYoVATHTp08nMjKSadOm0bdvX0aPHg3AihUrSE1NZcqUKYwePZonnngCv99PaGgod911F1OnTmXixIlMnTq1pM/HH3+cAQMG8Pbbb3PmmWfy2muvHfJjFhERkeClQrCU9PR04uPjadasGWFhYSQnJ5OWlhYQk5aWRo8ePQA4++yzWbRoEc450tLSSE5OJjw8nLi4OOLj40lPT6dRo0a0bNkSgLp165KQkIDP5wNg1apVnHLKKQB06NCBOXPmHMKjFRERkWB3WBaCZjbNzL4ys3Qzu7F43fVmttzMFpnZeDP7V/H6aDP7j5ktLv502l2/Pp+P2NjYkuWYmJiSoq28mNDQUCIiIsjOzq5Q2zVr1rBs2TKOP/54ABITE0sKzVmzZrFu3br9OCsiIiIilXNYFoLAdc65U4G2wO1mFgc8DJwGdAJalop9HnjWOdcOuBh46VAnC7Bt2zYGDRrEPffcQ0REBACDBw9m6tSp9OvXj23bthEWFlYVqYmIiEiQCq3qBPbR7WZ2UfH3eOBKIM05txHAzKYCxxVv7wa0NrOdbaPMLMI5t8udGTExMQGjcj6fj5iYmHJjYmNjKSgoIDc3F6/Xu8e2BQUFDBo0iPPOO4+zzjqrJCYhIYExY8YARdPE8+fP39fzISIiIlJph92IoJmdSVFx19E59zfgG+CnPTQJAU5zzp1U/IkrrwgEaN26NRkZGWRmZpKfn09qaipJSUkBMUlJScyYMQOA2bNn065dO8yMpKQkUlNTycvLIzMzk4yMDNq0aYNzjkcffZSjjz6afv36BfS1ceNGAAoLC5kwYQIXX3zxPp0TERERkX1xOI4IeoFNzrltZtaSoungukAXM6sP5FA0Bfx9cXwqcBvwFICZneScW1Jex6GhoQwcOJDbbrsNv99Pz549SUxMZNy4cbRq1YouXbrQq1cvBg8eTEpKClFRUQwbNgwout6vW7du9OnTB4/Hw6BBg/B4PCxZsoQPPviAY445hr59+wLQv39/OnfuzMyZM5k6dSoAXbt2pWfPngfplImIiIjsypxzVZ1DpZhZLWAakAAsA+oBQymaCh4IbKRohPB359yDZtYIGAO0oqjwneecu7mcrl1OTs5Bz39vIiMjAcjOzq7iTMDr9VaLPEC57I5yKZ9yKZ9yKT8PqD7/zwXlUlZxLra3ONk3h92IoHNuB9C97Hoz+9I5928zCwX+S1GxiHNuPXDpoc1SREREpPo77K4R3IOhZrYE+AH4jeJCUERERETKd9iNCO6Oc+7eqs5BRERE5HBSk0YERURERKQSVAiKiIiIBCkVgiIiIiJBSoWgiIiISJBSISgiIiISpFQIioiIiAQpFYIiIiIiQUqFoIiIiEiQUiEoIiIiEqTMOVfVOVQXOhEiIiLVk1V1AjWVRgRFREREglSNedfwgZCTk1PVKRAZGQnAH9m5VZwJNPFGkJ2dXdVpAOD1epVLOZRL+ZRL+ZRL+XkAyqWM6piLHBwaERQREREJUioERURERIKUCkERERGRIKVCUERERCRIqRAUERERCVIqBEVERESClApBERERkSClQlBEREQkSKkQFBEREQlSKgRFREREgpQKQREREZEgpUKwjIULF9K7d29SUlKYNGnSLtvz8vK4//77SUlJ4eqrr2bNmjUl2yZOnEhKSgq9e/fms88+C2jn9/vp27cvd955Z8m6t99+m5SUFNq2bcvmzZv3mJdzjlEjn6Rv715c1/dSlv+0tNy4ZUuXcu3lf6dv716MGvkkzjkAxo56jiv79Oa6vpfy0MB7St6r/MeaNSSfcTrXX3E5119xOU8PH1ah8yQiIiKHvxpRCJrZJDO7ZH/78fv9jBgxglGjRjF16lRmzpzJihUrAmKmT59OZGQk06ZNo2/fvowePRqAFStWkJqaypQpUxg9ejRPPPEEfr+/pN3kyZM5+uijA/r629/+xgsvvECTJk32mtsXCxfwe0YGb/xnGvfc/xDPjhhebtyzI4Zz7wMP88Z/pvF7RgaLPlsIQNv2HZg4eQovv/k28UcexZuTJpa0aRrXjAlvTGbCG5O55/4HKnayRERE5LBXIwrByjKz0PLWp6enEx8fT7NmzQgLCyM5OZm0tLSAmLS0NHr06AHA2WefzaJFi3DOkZaWRnJyMuHh4cTFxREfH096ejoA69atY8GCBaSkpAT01bJlS5o2bVqhnBfMS+Pc8y/AzGhzwgnk5uSyYX1WQMyG9Vls3ZpLmxNOwMw49/wLmJ82F4B2p3UkNLTosFsffzxZvnUV2q+IiIjUXIe8EDSzh81smZnNN7PJZnavmSWa2Udm9pWZfWpmLYtjJ5nZKDNbaGYrdo76WZF/FfczC4gp1f+pZpZW3NdMM2tSvH6umT1nZl8Cd5SXm8/nIzY2tmQ5JiYGn8+325jQ0FAiIiLIzs7eY9unn36a22+/HTPb5/OW5fMRXar/6JgYsnxZZWKyiI4pHRNLVpn8AT54/z3an96pZHntmkxu6NeXO276B999880+5ygiIiKHl3JHxg4WM2sHXAz8DQgDvga+Av4N3Oyc+9nMOgAvAGcVN2sCdAZaAu8B7wAXAS2A1kAs8CPwspmFAaOBXs65LDO7FPgncF1xX+HOubYH/UBL+fTTT2nQoAGtWrXiyy+/PJS7LtdrL0/A4/FwznndAWjYqBFvv/c/vPXqsWzpUh4aeA+T3ppC3YiIKs5UREREDrZDWggCnYDpzrk/gT/N7H2gNnA6MLXUiFmtUm2mOecKgR/NbOdwVxIw2TnnB9aY2Zzi9S2A44GPi/vyAH+U6uvtPSUXExPDunV/TZn6fD5iYmLKjYmNjaWgoIDc3Fy8Xu9u286bN4958+axYMEC8vLyyM3N5eGHH+axxx7b27niv1OnMGPafwFo2bo1WaX6z/L5iI6JDoiPjokOmPLN8q0julT+H854j8/mf8ozL4wtGZ0MDw8nPDwcgBatWtG0WTMyVq+mZevWe81PREREDm/V4RrBEGCzc+6kUp9WpbbvKPV9b3OrBqSX6ucE51xyqe1b99S4devWZGRkkJmZSX5+PqmpqSQlJQXEJCUlMWPGDABmz55Nu3btMDOSkpJITU0lLy+PzMxMMjIyaNOmDQMGDOCDDz7g/fff55///Cft2rWrUBEIcFGfv5fcxNG5y5nM/OB/OOdI//576kZE0LBRYCHYsFE0detGkP799zjnmPnB/+iU1AWALz5byFuvvcqwp5+ldu0jStps3rSp5KaWNZm/k5mxmqZxcRXKT0RERA5vh3pEcAHwopkNL953D4qmhX8zsz7OualWNFR1onPu2z30Mw+4ycxeoej6wK7Am8AyINrMOjrnPiueKj7OOZdekeRCQ0MZOHAgt912G36/n549e5KYmMi4ceNo1aoVXbp0oVevXgwePJiUlBSioqIYNqzocSuJiYl069aNPn364PF4GDRoEB6PZ4/7e+utt3j11VfZsGEDl112GZ06deLJJ58sN/a0Tp35YuECrujdi1q1a/N/Dw8t2Xb9FZcz4Y3JANw56D6eeHQoeTv+pP3pnehQfC3g80+NID8vn3sG9Aeg9fEncM/9D/DtN18z8cVxeEJDCQkx7r7vAaK83oqcLhERETnM2c7nzB2yHZoNBfoC6wAf8BEwCxhL0fWAYcBbzrlHzWwSMMM5905x21znXERxsTgaOAdYDeQDLzvn3jGzk4BRgJeiYvM559x4M5sL3Ouc292Fem7ns/WqUmRkJAB/ZOdWcSbQxFt0I0x14PV6lUs5lEv5lEv5lEv5eQDKpYxqmMu+320pe3SoRwQBRjrnhppZHYpG9r5yzv0GnFc20Dl3TZnliOK/DhhQXufOuSUUXUNYdv2Z+525iIiISA1SFYXgv82sNUU3ibzinPu6CnIQERERCXqHvBB0zvU91PsUERERkV1Vh7uGRURERKQKqBAUERERCVIqBEVERESClApBERERkSClQlBEREQkSKkQFBEREQlSKgRFREREgpQKQREREZEgpUJQREREJEhZ0Wt7BdCJEBERqZ6sqhOoqTQiKCIiIhKkDvm7hquznJycqk6ByMhIAOYvW1m1iQCdWyTwc+dzqzoNAI6dP5Ps7OyqTgMAr9erXMqhXMqnXMpXXXLxer0AyqWM6piLHBwaERQREREJUioERURERIKUCkERERGRIKVCUERERCRIqRAUERERCVIqBEVERESClApBERERkSClQlBEREQkSKkQFBEREQlSKgRFREREgpQKQREREZEgpXcNAy1atDgvISGBgoICUlJSuOaaawK25+XlMWTIEJYuXYrX62X48OE0bdoUgIkTJzJ9+nRCQkIYOHAgHTt2BGDhwoWMHDmSwsLCgD4fffRRli5dinOOI488kqFDh1KnTh3Wrl3LkCFD2LZtG36/n+6XXcmJbduX5OCcY/L4sXz/5SLCa9Xmujvv4ajEY3c5lpW//MzLz48kf8cOTmjbnsv/cQtmxuoVv/LaC6PIz88jxOOh380DaH5cSz6fO4cP/zMFh6P2EUdw5S23EX904j6dxzod2hJ9x80Q4mHLjA/Z9PqUgO2R3c+hUf8b8K/fAMDm/7zHlhkf7dO+REREZP9V6YigmSWY2Q+ViL/ZzK7aS8w1Zvav3Wx7oOy6Fi1aeIAxL730ElOnTmXmzJmsWLEiIGb69OlERkYybdo0+vbty+jRowFYsWIFqampTJkyhdGjR/PEE0/g9/vx+/2MGDGCUaNG7dLn3XffzeTJk3nrrbdo3LgxU6YUFUsTJkzgnHPOYdq0aTz77LO8Pi7wEL7/ajHr1mQy7MWJXHXrHbw2dnS5x//62FFcfeudDHtxIuvWZPLD118CMHXSS/S8vB9Dnx9LSt+reGfSBAAaxcYyaPhTPDr6RS689ApeGfP8nk7v7oWEEH33rWTe+xCr+v2DyG5dCU84cpew3DnzWH1tf1Zf219FoIiISBU7rKaGnXPjnHOv7kcXuxSCQHvgl/j4eMLCwkhOTiYtLS0gIC0tjR49egBw9tlns2jRIpxzpKWlkZycTHh4OHFxccTHx5Oenk56ejrx8fE0a9Zslz4jIiJ2Hgs7duwI2E9ubi4AOTk51GvQIGDbki8+4/Su3TAzElu2YtvWrWzeuCEgZvPGDWzfto3Elq0wM07v2o1vPl8IgJmxfdtWALZv3VrS/zGt2lA3IhKA5i1asmn9+sqczxK1W7Ug//c1FKxZCwUF5MyaS93OHfepLxERETk0qkMh6DGz8WaWbmapZnaEmSWa2Udm9pWZfWpmLQHMbKiZ3Vv8vZ2ZfWdmS8zsqTIji02L2/9sZk8Wxz8BHFEc/0ap2DggY+dCTEwMPp8vIEGfz0dsbCwAoaGhREREkJ2dHbC+dNvdrd/pkUce4dxzz2XlypVcdtllANx00018+OGHJCUlceONN9L3xlsDcti0YT0NoqNLlus3bMTmDWUKwQ0bqN+o0V8xjRqxaUNRYXfZDTczdeJL3HvdFUyZOJ7eV123yw/x6ccfccKp7XZZXxGh0Q0p8GWVLBdkrSc0utEucRFdOnHkpLE0fuwhQmOid9kuIiIih051uEbwWOBy59w/zGwKcDFwLXCzc+5nM+sAvACcVabdROAfzrnPiou80k4CTgZ2AMvMbLRz7j4zG+CcO+ngHs7eDRkyBL/fz1NPPUVqaio9e/bko48+4sILL+SWW27hm2++4a6Bg3h09IuEhByYWn3uhzO49IabaHv6GSyen8ak0c9w72MjSrb/9N0S5n88k/ueeOaA7K88Wxd8Tu6subj8fKJ6nU/sg/eSecf/HbT9iYiIHGg/dz7XVSb+2Pkz7WDlciBUhxHB35xzS4q/fwUkAKcDU81sCfAi0KR0AzOrB0Q65z4rXvVmmT5nO+eynXN/Aj8CR+1h/5lA/M4Fn89HTExMQEBMTAzr1q0DoKCggNzcXLxeb8D60m13t740j8dDcnIyc+bMAeC9996jW7duAJx88snk5+Xx0btTGXrHLQy94xa8DRqwMeuvEbdNG9ZTr2HDgD7rNWwYMLW7af166jcsGpVbOOdjTu3YGYC2nZL4bfnykriM31Yw6V/PMeDBoURERe3hVO1eQdaGgBG+0OhGFGQFTjMXbsnB5ecDsOX9j6jVYtebXUREROTQqQ6FYOkL5fxAA2Czc+6kUp9W+9nnnkY+FwPHZmRkkJ+fT2pqKklJSQEBSUlJzJgxA4DZs2fTrl07zIykpCRSU1PJy8sjMzOTjIwM2rRpQ+vWrcnIyCAzMzOgT+ccGRlFs9DOOebNm0dCQgIAjRs3ZvHixQD8+uuv5Ofn0f3ivzP0+bEMfX4sJ3c4nYWfzMI5x68/LaVOnTrUa1CmEGzQkCPq1OHXn4ruSl74ySxO6tCxZNuyH74DYOl3S4gtvut5Q5aPF4Y/yg13DaRxXLNKnua//PnTMsLj4whtEguhoUR2O5OtCz4PiPE0/Ou6x7qdTyNv1ep93p+IiIjsv+owNVzWFuA3M+vjnJtqZgac6Jz7dmeAc26zmeWYWQfn3BfAZRXsO9/Mwpxz+TtXLFu2rKBFixYDbrjhhv/l5+fTs2dPEhMTGTduHK1ataJLly706tWLwYMHk5KSQlRUFMOGDQMgMTGRbt260adPHzweD4MGDcLj8QAwcOBAbrvtNvx+f0mfhYWFDBkyhK1bt+Kc47jjjuO+++4D4M477+Txxx/nrbfewsy47o57KTr0Iie2bc/3Xy3m/puuJbxWLa67/Z6SbUPvuIWhz48FoN/NtzHh+ZHk5+VxwiltS675u3rAnUwePxa/309YeDhX3XonAO+/9Qa5OTkldymHeDwMfqbcm673zF+I75kxxD0zDEJC2PK/VPJ+W0WD669ix0/L2brgc+pd0qvoBhK/H/+WHNb98+nK70dERKQqWXUYQztwzLlKTXUf2J2bJQAznHPHFy/fC0QArwBjKZoSDgPecs49amZDgVzn3MjiawfHA4VAGtDWOdfJzK4p/j6guM8ZwEjn3FwzGwH0BL52zl1RJh2Xk5NzUI+3IiIji+7gnb9sZdUmAnRukcDPnc+t6jQAOHb+TLKzs6s6DQC8Xq9yKYdyKZ9yKV91ycXr9QIolzKqYS7V5jq7n8/oXrlrBD/9sNrkXp4qHRF0zq0Eji+1PLLU5vPKiR9aajHdOXcigJndB3xZHDMJmFSqTY9S3/8P0N0JIiIism+sWtd1lVYdp4Yr6gIzu5+iY1gFXFO16YiIiEhNZyEqBKsF59zbwNtVnYeIiIgEkRp2jeBhWwiKiIiIHHI1bGq4ZpW1IiIiIlJhGhEUERERqShdIygiIiISnExTwyIiIiJSE2hEUERERKSiQmrWGFrNOhoRERERqTCNCIqIiIhUVA27RlCFoIiIiEhF1bBC0Jyr1LuTazKdCBERkeqp2lRfv3a/pFL1QuKH71Sb3MujEcFScnJyqjoFIiMjAdj25TdVnAnUaXsyG1+rHm/xa3Dlpazqe0NVpwHAUW++RHZ2dlWnAYDX61Uu5VAu5VMu5ecBKJcyqmMu1YXVsJtFVAiKiIiIVFQNKwRr1tGIiIiISIVpRFBERESkomrYzSIqBEVEREQqSK+YExEREZEaQSOCIiIiIhUVohFBEREREakBNCIoIiIiUlFWs8bQVAiKiIiIVFQNmxpWISgiIiJSQTXtrmEVgiIiIiIVpanhmm3hwoWMHDmSwsJCUlJSuOaaawK25+XlMWTIEJYuXYrX62X48OE0bdoUgIkTJzJ9+nRCQkIYOHAgHTt2ZO3atQwZMoSNGzdiZlx00UVcfvnlADz//PPMmzePsLAwmjVrxpAhQ0reNVzWgm+X8NRrrxTldeZZXNezV2Be+fk8PHYMS1f+hjcighG33UHT6BgAlq9exeMTXmLr9u2EmPH6Y/+kVnh4Sds7nn6KTN863hkxstLn67Nff+a5mR/gd46eJ53CVZ2SArZ/s2olz338Ib+uW8ejvftwVqs2APyxeTP3vTMZ5xwFfj+XtDuN3qe2q/T+S6t9YhsaXHU5hISQ+8mnbHn/w4DtkeefQ8SZZ0BhIf4tOWz490T86zcCcOTr/yZ/9e8AFGzYSNbT/9qvXERERA4Hh1UhaGYvAc84537cQ8wkYIZz7p0y6xOA051zb+6urd/vZ8SIEYwZM4bY2FiuuuoqkpKSaN68eUnM9OnTiYyMZNq0acycOZPRo0czfPhwVqxYQWpqKlOmTCErK4v+/fvz7rvvEhoayl133UXLli3ZunUrV155JR06dKB58+Z06NCBW2+9ldDQUEaNGsXEiRN58MEHd82rsJAnJr3M2PsfJLZBQ654+AG6nHIqic2alcRMm/sJkXUjeO+Z5/nos4U8P/lNRtx+JwV+Pw+9MIbHbrmVFkcdxeacHEJD//rZZy9eRJ1atfZ+8ss7X4WFPP3hDJ6/4mpioqK4bsKLnHFcS44uLkABGnu9PHzhRbzx+YKAto0iIxh/zT8IDw1lW94OrnhxDGcc14LoyKh9ygUzGlx7Bb7hz1CwYRNNHn+I7V8vIT/zj5KQvJWrWfvQ47i8PCK6nUn9y/uwfvSLALi8PP544NF927eIiASPGnaN4GE1vumcu2FPReBeJAB99xSQnp5OfHw8zZo1IywsjOTkZNLS0gJi0tLS6NGjBwBnn302ixYtwjlHWloaycnJhIeHExcXR3x8POnp6TRq1IiWLVsCULduXRISEvD5fACcdtppJUXZCSecULK+rB9+/YX42MY0i4klLDSUc087nblffRkQM/erL7kwqWg0rlv7DixKT8c5x2fff8exRx5Ji6OOAqBeZCSe4hdmb/vzT17/4H/ckNK7oucwwI9rfqdZgwbE1W9AmCeUbm1OYN7ynwJimtSrzzGxjQkpc01FmCeU8OJjzy/w45zbpxx2Cj/maArW+SjwrQe/n62fLeKIU08KiNnx4zJcXl7R959/xdOg/n7tU0REgo+FhFTqU91VSYZmNtDMbi/+/qyZzSn+fpaZvWFmyWb2mZl9bWZTzSyiePtcM2tb/P16M1tuZovMbLyZlZ7LSzKzhWa2wswuKV73BHCGmS0xs7vKy8vn8xEbG1uyHBMTs0txVjomNDSUiIgIsrOzK9R2zZo1LFu2jOOPP36Xfb/33nucfvrp5Z4v38aNxDZsWLIc26ABWZs2BsZs2kjjBkUxoR4PEXWOYHNuDqv/+AMD+j8xjMsfvI9J779X0uaFqW9z5fkXcEStcPZFVk4OMVHekuWYyCiycrZUuP267Gz6/XsMvUY9Tb/TO+/7aCAQWr8+BRs2lSz7N27aY6EX0fUM/vz2+5JlCwuj8eMP0fiR+zmi7Um7bSciIlKTVFWp+ilwRvH3tkCEmYUVr/sOeAjo5pw7BfgSuLt0YzNrCjwMnAZ0AlqW6b8J0BnoQVEBCHAf8Klz7iTn3LMH/Ij2Ytu2bQwaNIh77rmHiIiIgG0TJkzA4/HQvXv3A75ff6Gfb5Yv45+3DuDlwY8w58vFfPHD9yxbuZIMn4+z2rU/4PusqFivl9dvvJWpt97BB98tYWNu7iHZb91Op1Hr6KPInjGzZF3m7f/H2oceZ/2Y8TS48jJCY6IPSS4iInKYMavcp5qrqkLwK+BUM4sCdgCfUVQQngFsB1oDC8xsCXA1cFSZ9u2BNOfcRudcPjC1zPZpzrnC4mnkWCooJiaGdevWlSz7fD5iYmJ2G1NQUEBubi5er3ePbQsKChg0aBDnnXceZ511VkB/77//PvPnz+fxxx/f7S3pMQ0asB+vYUoAACAASURBVG7DhpLldRs3El2/QWBM/Qas3VgUU+D3k7ttO/UiIolp0JBTWraifmQUR9SqReeTTuKnlSv59pfl/LhiBeffMYBrHxnKqj/+4IbHH6noqQIgOjIS35bsv445Z8s+jepFR0bRPDqGJRmrKt12p4JNmwht+NcIoKdBffwbN+0SV/v4VnhTLsD39L+goKBkvX/T5qJ+fOv588dlhCccuc+5iIhIDXYACkEzO8/MlpnZL2Z2Xznb7zazH83sOzObbWZHldkeZWa/l5kN3SdVUggWF2+/AdcACykaIewKHFO8/uPikbuTnHOtnXPXV3IXO0p9r3A53rp1azIyMsjMzCQ/P5/U1FSSkgLvgk1KSmLGjBkAzJ49m3bt2mFmJCUlkZqaSl5eHpmZmWRkZNCmTRucczz66KMcffTR9OvXL6CvhQsX8uqrr/LMM89Qu3bt3ebVpnkiq9euJdPnI7+ggJmfL+TMU08NiOlyyqm8P28eALMWfUG7Nm0wM04/8UR+yVjN9h07KPD7+WrpUprHxfH3bsl8PGYsHzz/LyYOGcpRTZrw0kNDKnqqAGjVNI6MjRtZs2kT+f4CZqV/zxnHlR2cLZ9vSzZ/5ucDsGX7dr7LWM2RDRtVav+l5f26ktDGsYRGNwKPh7od27P9q28DYsKOiqfB9Vfie3o0hVtyStaH1K0DxdcrhkRGUKvFMeRnrtnnXERERHbHzDzAGKA7RQNfl5tZ6zJh3wBtnXMnAu8AT5bZ/hgw70DkU5V3DX8K3AtcB3wPPEPRSOHnwBgzO8Y594uZ1QXinHPLS7VdDDxnZvWBHODi4j72JAco/9ksxUJDQxk4cCC33XYbfr+fnj17kpiYyLhx42jVqhVdunShV69eDB48mJSUFKKiohg2bBgAiYmJdOvWjT59+uDxeBg0aBAej4clS5bwwQcfcMwxx9C3b9G9Kv3796dz5848+eST5Ofnc+uttwJw/PHHM3z48F3z8nj4v2uupf+IYRQWFtKrS1cSm8XzwjtTaH10c848tS0pZ3blobFj6Hn3HUTVjeCJ224HIKpuBP26X0C/hx/EDDr/7WTOOPmUvZyqigkN8XDPeRdw5+RXKSwspMdJp9A8OoZ/z51Nq6ZxnHFcS35ck8l9UyeT8+d25v+8jJfS5vDmzbexcn0Wo2bNxAAH9D2tE8fEVHjwdleFhWyc9CYx991Z9PiYuQvIz1yD95Je5K1Yyfavv6X+FX0IqV2b6NtvBv56TExY0yY0uP5KcA7M2PLehwF3G4uIiJTY/xtA2gO/OOdWAJjZW0AvoORmWOfcJ6XiPwdKRpLM7FSKZjs/omg2db/Y/t6tuc87NjubooOo55zbambLgXHOuWfM7CxgBLDzuSYPOefeM7O5wL3OuS/N7EZgILAR+An43Tn3YNnHx5hZrnNu5zWIM4GGwKRyrhN0OTk5VLWdzxHc9uU3VZwJ1Gl7Mhtfe7uq0wCgwZWXsqrvDVWdBgBHvfkS2dnZew88BLxer3Iph3Ipn3IpPw9AuZRRDXOpNhfbrbrq5koVTke9Oi4g9+KbWM9zzt1QvHwl0ME5N6C89sXTv2udc4+bWQgwh6LCsBtFo4bltquoKhsRdM7NBsJKLR9X6vscYJenCzvnziy1+KZz7t9mFgr8F5hWHHNNmTYRxX/zgcAL9EREREQq4VC+Ys7M+lE06teleFV/4APn3O8HKo/D6oHSZQw1s25AbSCV4kJQRERE5KDZ/wdKZwLxpZabFa8LUFzjPAh0cc7tvPehI0WPwusPRADhxTOfu9xwUlGHbSHonLu3qnMQERERqaTFwLFmdjRFBeBllHnhhZmdDLxI0RRyyUOJnXNXlIq5hqKp4X0uAuEwLgRFREREDjnbv5tFnHMFZjaAovsWPMDLzrl0M3sU+NI59x7wFEUjflOLp4BXO+d67l/i5VMhKCIiIlJRB+DaPOfcB8AHZdYNLvW9WwX6mARM2t9cqv9L8ERERETkoNCIoIiIiEgF2f7fLFKtqBAUERERqajD4P3BlaGpYREREZEgpRFBERERkYra/1fMVSsqBEVEREQqyFQIioiIiAQpXSMoIiIiIjWBOeeqOofqQidCRESkeqo2w3C/DxhYqXqh2b+eqja5l0dTw6Xk5ORUdQpERkYCsGbgw1WcCTR96jH+/Gl5VacBQO2Wx7Fx259VnQYADerUJuMft1d1GgDEjx9FdnZ2VacBgNfrVS7lUC7lqy65eL1eAOVSRnXMpdqoYdcI1qyjEREREZEK04igiIiISAVZDbtZRIWgiIiISEXVsEJQU8MiIiIiQUojgiIiIiIVFVKzRgRVCIqIiIhUlNWsydSadTQiIiIiUmEaERQRERGpIKthU8MaERQREREJUhoRFBEREamoGvZmERWCIiIiIhVVw54jqEKwjIULFzJy5EgKCwtJSUnhmmuuCdiel5fHkCFDWLp0KV6vl+HDh9O0aVMAJk6cyPTp0wkJCWHgwIF07NiRlStX8sADD5S0z8zM5KabbqJv377cf//9rFq1Cih6z3FkZCTvv/9+pfKt1eIYvD0vgBBj26KvyP3k04DtdZNOp077U6GwkMLcrWye8l/8m/fv3ZELvv6KEePHU1hYyEXnnMP1l/QJ2J6Xn8+Dzz7D0l9/xRsZyZMDBxEXG1uy/Y8sHxcNuJVbLrucqy/qXbLe7/dz+T13E9OwAf96eEiFcnHO8eyTI1i4YD61a9fm4Uceo0WrVrvE/fTjjzw25GF27NjB6Z06c9eg/8PMmP1xKhPGjWXlb78x4bU3aNWmDQDZmzfzwMB7WJqezvk9e3LvfQ/s0uee1G7TinqX9YaQELZ++hk5H80K2B5xTlciOnfEFfopzMll46Q38W/chKdBfRr1vwFCDPN4yJkzj61pCyq1bxERkYpSIViK3+9nxIgRjBkzhtjYWK666iqSkpJo3rx5Scz06dOJjIxk2rRpzJw5k9GjRzN8+HBWrFhBamoqU6ZMISsri/79+/Puu++SkJDAm2++WdL/+eefT9euXQEYPnx4Sb/PPvssERERlUvYDO9FF7Lh35PwZ28h+vab+TP9Jwp8WSUh+Zl/sP75cbj8fOp0bEfUBeey6Y0p+3WOhr04jhcfeYzYhg3pe+/dnNm+A4lHHlkS89+PU4mKiGDGi//mw3nzeO6VSTw16P9Kto+cMIHOp5y6S99vzHif5vHNyN22rcL5fDZ/PhmrVzN1+vukf/89Tw57nAmvvbFL3JPDHuf+h4fQ5oQTuHvArXy+YAEdO3cmMfEYhj/9LCMefywgPrxWODf2v5Vff/mFFb/+UuF8ADCjft8++J4dg3/TZmIfvJft3/5AwR9rS0LyV//Oun8+hcvLp26XztS7pFfJ77juiWehoACrFU7jofezfcn3FGZvqVwOIiJyUNS0V8zVrInuYmY218zalrO+rZmN2l279PR04uPjadasGWFhYSQnJ5OWlhYQk5aWRo8ePQA4++yzWbRoEc450tLSSE5OJjw8nLi4OOLj40lPTw9ou3jxYuLi4mjSpEnAeuccs2bN4txzz63UcYYd2YyC9Rvwb9wEfj/bl3xP7TaBo2F5v/6Gy88v+r7qdzz1oiq1j7J++Pln4hs3oVnjxoSFhXHeGUnMXfRFQMwnX3xBz7POBuCcTp1Y9N23OOcAmPP5Z8TFxgYUjgDr1q/n0y8Xc9E5yZXKZ17aJ3TvcSFmxvEnnkhuTg7rs7ICYtZnZbF161aOP/FEzIzuPS4kbe4cABKaN+eohIRd+j3iiDr87eRTqFWrVqXyAQg/+ijys7Lwr98Afj/bFn/NESedEBCzY9nPuLzi32XFSjz16xVt8PuhoAAACw2tcVMQIiKHvZCQyn2queqf4QHknPvSOXf77rb7fD5iS01hxsTE4PP5dhsTGhpKREQE2dnZFWo7c+bMcou9b775hgYNGnBkmeJobzxRUQHTvP7sbDzeyN3G121/Cn/+9HOl9lGWb8MGGjdqVLIc07Ah6zZsCIzZ+FdMqMdDRN26bM7Zwrbt25n47n+4+bLLd+n3yZfGc9fV1xJSyQd1Zvl8xDb+67xHx8aSVea8Z/l8xMSU+m3KiTmQPPXq4d+4uWTZv2kznnre3cbX7Xwaf/7w41/t69cjdsj/0WTEo+R8NFujgSIictBUy0LQzKaZ2Vdmlm5mNxavyzWzZ4vXzTaz6L1008fMFpnZcjM7o7iPM81sxkE/gHLk5+czb948unXrtsu23RWIB9IRp/yNsGZx5M6df1D3sydj33qTfj17UeeIIwLWpy1eRIN6Xlofc0wVZVZ16nRoS3jCkWyZOadknX/TZtY9MoI/HnyUOqe3JyRy98W9iIgcYmaV+1Rz1fUaweuccxvN7AhgsZn9B6gLfOmcu8vMBgNDgAF76CPUOdfezM4vjt21AisjJiaGdevWlSz7fD5iYmLKjYmNjaWgoIDc3Fy8Xu9e2y5YsICWLVvSsGHDgP4KCgr45JNPeO211/aW3i78W7YEjDR5vF782Tm7xIUf25yIs7qwYeyEoqnH/RDTsCFr168vWfZt2EBsmWOKaVAUE9uoEQV+P7lbt1IvMorvly9n1sKFPPfKJHK2bsXMCA8Px7dhA3MXLWL+V1+xIy+Prdu2cf8zTzP87nvKzeGdt9/ivXffBaBVmzasW/vXec9at47oMr9ZdEwMPl+p36acmAPJv3kzngb1SpY99euVe4NOrVbHEXVBMr6nRpVMB5dWmL2F/Mw/qHVsItu/XnLQ8hURkUo4DIq7yqiWI4LA7Wb2LfA5EA8cCxQCbxdvfx3ovJc+3i3++xWQUJGdtm7dmoyMDDIzM8nPzyc1NZWkpKSAmKSkJGbMKBpUnD17Nu3atcPMSEpKIjU1lby8PDIzM8nIyKBN8R2osPtRv0WLFpGQkBAwrVxR+RmZhDZqWHR9mcfDESedwJ8//hQQE9q0CfUu7sXGSa9TuHVrpfdRVptjj2X1H2v4fd1a8vPz+ejTeXRp3z4g5sz2HXhvzmwAPl6wgPbF1+ZNGj6CD8dP4MPxE7jiwp7ccEkfLr+gB3dcdTUfvzyJD8dPYMS9g2h34om7LQIBLrn0Ml59ewqvvj2FpK5d+XDG+zjn+OG776gbEUGj6MDB4kbR0dStW5cfvvsO5xwfznifpC5d9/tc7E7eytWExUTjadQAPB7qtDuF7d9+HxATFt+MBv0uY/2/xlOYk1uy3lO/HhYWBoDVOYJaxzanoNQ/MEREpGpZSEilPtVdtRsRNLMzKRq96+ic22Zmc4Ha5YS6vXS1o/ivnwoeZ2hoKAMHDuS2227D7/fTs2dPEhMTGTduHK1ataJLly706tWLwYMHk5KSQlRUFMOGDQMgMTGRbt260adPHzweD4MGDcLj8QCwfft2Fi1axIMPPrjLPlNTU0lOrtwNEiUKC8meNoOG/7gaQkLYtuhrCtb5iEw+i7zf17Djx5/w9jgXCw+nwZWXFZ2MTdlsnLTrXbUVFerxcP+NN3PL0CFFj9g5uxvHHHkUY954nTbHHMuZHTpw0Tnn8OCzz9DjphuJiozgyXsH7fP+9ub0zmewcP58+vTsQa3atXlo6KMl26669O+8+nbRHdID73+Qx4sfH3Nap0507Fz074i5c2bzzIgn2LxpE/fcPoDjWrTguRfGAXDR+d3ZujWXgvx85n3yCc+/MI6jExP3nlRhIZvefIfoO/tjFkLugs8pWLOWqJ7nk7dqNX9++wP1LumF1Q6n4c3XAuDfsIn1Y8YT2jiWen9PKfqv2yBn5hzyM/84sCdNRESkmO28m7O6MLNewA3OuQvNrCWwBDgP+AS43Dn3lpk9BMQ6527bTR9zgXudc1+aWSOKppQTiovMe51zPcpp5nJydp1WPdQii68HWzPw4SrOBJo+9Rh//rS8qtMAoHbL49i47c+qTgOABnVqk/GP3d5zdEjFjx9Fdvb+PRfyQPF6vcqlHMqlfNUlF6+36PIa5RKoGuZSbeZj1w59olKFU+Oh91Wb3MtT7UYEgY+Am81sKbCMoulhgK1A++Ii0AdcWkX5iYiISLAKqdZ1XaVVu0LQObcD6F52vZnhnLu7gn2cWer7eoqvEXTOzQXmHoA0RURERA571a4QFBEREam2athdw4dNIeic2+X9a2Y2BuhUZvXzzrmJhyYrERERCSaHw53AlXHYFILlcc7dWtU5iIiIiByuDutCUEREROSQquSrUKs7FYIiIiIiFVXD7hquWWWtiIiIiFSYRgRFREREKsh017CIiIhIkKph1wjWrKMRERERkQrTiKCIiIhIRelmERERERHZV2Z2npktM7NfzOy+crYnmdnXZlZgZpeU2XakmaWa2VIz+9HMEvYrF+fc/rSvSXQiREREqqdqMwzne/pflaoXYu4ZEJC7mXmA5cA5wO/AYuBy59yPpWISgCjgXuA959w7pbbNBf7pnPvYzCKAQufctn06GDQ1HCAnJ6eqUyAyMhKADS9W/VvyGt50LX+m/1TVaQBQu03LavH7QNFvlHnn/VWdBgBxzw3n587nVnUaABw7fybZ2dlVnQYAXq9XuZRDuZSfB6BcyqiOuVQXtv9Tw+2BX5xzKwDM7C2gF1BSCDrnVhZvKwzYt1lrINQ593FxXO7+JqOpYREREZFDJw7IKLX8e/G6ijgO2Gxm75rZN2b2VPEI4z5TISgiIiJSURZSuc+BFQqcQdGUcTugOXDN/nSoQlBERESkoswq99lVJhBfarlZ8bqK+B1Y4pxb4ZwrAKYBp+zP4agQFBEREamoEKvcZ1eLgWPN7GgzCwcuA96r4N4XA/XMLLp4+SxKXVu4T4ezP41FREREgomFhFTqU1bxSN4AYCawFJjinEs3s0fNrCeAmbUzs9+BPsCLZpZe3NZP0bTwbDP7nqK7qcfvz/HormERERGRQ8g59wHwQZl1g0t9X0zRlHF5bT8GTjxQuagQFBEREakovWtYRERERGoCjQiKiIiIVFQNe9ewCkERERGRCrLyHwlz2NLUsIiIiEiQ0ohgGQsXLmTkyJEUFhaSkpLCNddcE7A9Ly+PIUOGsHTpUrxeL8OHD6dp06YATJw4kenTpxMSEsLAgQPp2LEja9euZciQIWzcuBEz46KLLuLyyy8HYPny5QwfPpxt27bRtGlTHnvssZJ3De/J57+t4Lm5s/AXFnLhCX/jqvYdA7Z/8/tqnp87m1+zfDxyQS/OOq5lybbOz44gsVHR44diI6N4MuWSSp+jBV9/zYiXx1NYWMhF3c7h+t6BfeTl5/Pg88+ydMWveCMjefKegcTFxJZs/yMri4vuGMAtf7+Mq1MuAuCNGe/zn49TcTgu7pZMvwt7lrvvA/37rFy5kgceeKCkfWZmJjfddBN9+/Zl7NixpKWlERISQv369Rk6dCjR0dFURK2Wx+Ht3QOzELZ+vpjc2WkB2yPO7Eyd09pCYSH+3K1snvwf/Js2A0XveA5PiCdvxSo2jH+lQvurqDod2hJ9x80Q4mHLjA/Z9PqUgO2NbruJOqf8DQCrXQtPvXqs6H7xAc1BROSwVsNGBFUIluL3+xkxYgRjxowhNjaWq666iqSkJJo3b14SM336dCIjI5k2bRozZ85k9OjRDB8+nBUrVpCamsqUKVPIysqif//+vPvuu4SGhnLXXXfRsmVLtm7dypVXXkmHDh1o3rw5jz/+OHfccQennnoq06dP57XXXmPQoEF7zrGwkJFzUnn+4suIiYzk+jcmcUbisRzdsFFJTOPIKB469wLe/PKLXdrXCg3llSuv269zNGz8i7w45BFiGzak76B7ObNdexLjjyyJ+e+sj4mKiGDGCy/y4fx5PPfqKzx171/HNXLiBDqf/NeD0H9etYr/fJzKG0+OJCw0lP6PDSWpbTuObNJkl30f6N8nISGBN998s6T/888/n65duwJw5ZVXcssttwDw1ltvMX78+ICicbfMqHdJT9aPnYB/8xZi7r6VP39YSsE6X0lI3u9r2Pr0GFx+PnU7dSCqZ3c2vTIZgNw587DwMOqe3qGiP0vFhIQQffetZN51PwW+9Rz50mi2zv+cvJWrS0LWj36x5Lv34p7UOu6YA5uDiMjhrpxnAx7OatbRlGJmk8ysUsNd6enpxMfH06xZM8LCwkhOTiYtLXAkJy0tjR49egBw9tlns2jRIpxzpKWlkZycTHh4OHFxccTHx5Oenk6jRo1o2bJoRK5u3bokJCTg8xUVBKtWreKUU4oKog4dOjBnzpy95vjj2j9oVq8+cfXqEebx0K1laz799eeAmCbeehwTHUPIQfhXyw+//Ex8k8Y0a9yYsLAwzut8BnMXLQqI+WTxF/TsehYA53TsxKLvv8M5B8CcLz4nLjY2oHD8LfN3TjjuOI6oVYtQj4dTWx/P7M8/22XfB+P3KW3x4sXExcXRpLgAjYiIKNm2ffv2Cl8XEn5UPAXrN+DfsAn8frZ98y21T2gVEJP3ywpcfn7R95Wr8XijSrbt+PlXCnfsqNC+KqN2qxbk/76GgjVroaCAnFlzqdu5427jI7t1JffjuQc8DxERqT5qbCG4L3w+H7Gxf01hxsTElBRt5cWEhoYSERFBdnZ2hdquWbOGZcuWcfzxxwOQmJhYUsjMmjWLdevW7TXHrNwcYktNH0dHRJKVk1PhY8wrKOC6NybxjzdfJe2X5RVut5NvwwYalxp9jGnYkHUbN5SJ2VgSE+rxEFGnLptzcti2fTsT//suN//9soD4Y448kq9//JHNOVvYvmMH87/+irXr1++674P8+8ycOZNzzz03YN2YMWO44IIL+PDDD7n55pv3en4AQrxR+Ddllyz7N2/B4/XuNr7Oae3YsbTyv0VlhUY3pMCXVbJckLWe0OhG5cfGxhDWJJZtXy856HmJiBxW9v9dw9VKtS0EzWyamX1lZulmdmPxulwze7Z43exS79rbW19nm9k3Zva9mb1sZrUObva72rZtG4MGDeKee+4pGWkaPHgwU6dOpV+/fmzbto2wsLCDnse7N/Tn5SuuYej5PXl+7ix+37zpoO9zp7Fvv0W/C3tS54gjAtY3bxbPtRf15uZHhtL/saG0OPpoPId46D0/P5958+bRrVu3gPW33nor//vf/+jevTtTpkzZTet9d8SpJxEeH0fOnHkHvO/9EdntTHLnzofCwqpORUSkWjGzSn2qu2pbCALXOedOBdoCt5tZQ6Au8KVzrg2QBgzZWydmVhuYBFzqnDuBousibykvNiYmJmBUzufzERMTs9uYgoICcnNz8Xq9e2xbUFDAoEGDOO+88zjrrLNKYhISEhgzZgyvv/465557LnFxcXs9KdERkawrNQKYlZtDdAVuMClpXxwbV68epzQ7kuW+vY9ClhbTsCFrN/w1WufbsIHYBg3LxDQoiSnw+8ndtpV6kZF8//Nynnv1Fbrf9A/emPE+L737DpM/+B8Avbudw1sjn2Hi48OJqhvBUcU3eAT0e5B+H4AFCxbQsmVLGjYMPJadunfvzuzZsyt0jgqzt+Cp/9cIoKdeFP7s7F3iah2XSGRyVza89Cr4/RXqe38UZG0gNOavfzuFRjeiIGvXkVeAiLO7kDNr7kHPSUREqlZ1LgRvN7Nvgc+BeOBYoBB4u3j760DnCvTTAvjNObdz7u0VIKm8wNatW5ORkUFmZib5+fmkpqaSlBQYmpSUxIwZMwCYPXs27dq1w8xISvp/9u47vKny/eP4+0nSUuhIdwulCpRdhsoeMiziAAVRHAiiIuoXxAkqypSfLBGZCiICIiBDtigVlCIbnFAKym4LdEJpC13J8/sjoTSlpSmoBbxf15WLJOc+53xympS7zxlpQ2RkJDk5OcTHxxMbG0t4eDhaa9577z2qVq1Kz549HZaVmpoKgNVqZfbs2Tz8cMlnZ9YJrkjc2VROpp0l12Jhw4H9tK7m3AH957KyyMnLA+DshfP8cTLe4SQTZ4RXr8GJU6eIS0ggNzeX77b8RNsmTR1q2jVpyuofbcc7fr99K03rN0Apxdz3x/DtzFl8O3MWT3Z+gOe6PcIT93cCIOWs7YzZU0lJbNy5nfvaXP4j+id+PhcVtVv4xIlLJ1Fs2rSJKlWqOLWNck7EYfL3x+jrA0YjFW5vSNa+GIcal5CKeD/6ECmzvsCakenUcq9V1oGDuIaGYKoYBCYTnh3akbl1x2V1LreEYvT0IGvf/n8llxBC3FAMhtLdrnPX5VnDSql2QAeghdb6vFJqE+BWRKn+O9drMpkYNGgQAwYMwGKx8OCDDxIWFsaMGTOoU6cObdu2pUuXLgwbNoyuXbvi5eXF6NGjAdvxfh06dKB79+4YjUbefPNNjEYjv/32G+vWraN69er06NEDgH79+tG6dWvWr1/P0qVLAWjfvj0PPlj0JVMcMhoMvN6+I699vRiL1nSu14Bq/gHM2rqZ2sEVuTOsBvtPn2Lw6uWkZ2Wx5cghZm/fwoLez3E8NZlx36/HoMCqoVeT5qVuBE1GI4Ofe57/vTfCdgmXiAiq33IL0xctIDysOu2aNuOhiLt5d/JHdO73Al4enox/fWCJy33jg3GkpZ/DZDTxTt8X8HL3uKzmn/j5gO1EkF27dvHuu+86rG/q1KkcP34cg8FAxYoVGTx4sHMbyWrl7Ner8X/xWTAoMnfuIe90Ip73dSD3RDxZ0TF4PXg/qpwrvs/Y3hOWM2dJ/Ww+AP4DnscUFIDBtRzBI97mzFdfk33gryut0TkWK4kTpxMycTQYDJz7JpKco8fx7fMU2Qf+zG8KPTu0Jb3Q5W6EEELY3QC7e0tDXTyb83qilOoCPKe1fkApVRv4DbgX+BF4Qmv9lVJqCBCktR5QzDLmAmvttz+Bu7TWh+zP/6q1nlxoFp1eipMu/ikXryOYMnNOGSexXc8uK/pAWccAwC28NtfDzwdsP6P4V51sCv9hIZPG8Ffre0ou/BfU2LKetCJ2P6qMwQAAIABJREFUgZcFs9ksWYogWYrOAUiWQq7DLNdN95U6b1GpGiff3k9cN9mLcl2OCALfAS8qpWKAg9h2DwNkAk3tTWAi8FhJC9JaZymlngGWKqVMwG5gxj8TWwghhBA3tRtgd29pXJeNoNY6G7iv8PNKKbTWrzu5jKcL3N8I3P63BRRCCCGEuAlcl42gEEIIIcT1SBmu6z29pXZDNYJa68vOIFBKTQdaFXp6sta67A+yE0IIIcTN5SY7WeSGagSLorXuX9YZhBBCCPEfoeQYQSGEEEKI/6SbbdfwzdXWCiGEEEIIp8mIoBBCCCGEs+QYQSGEEEKI/6ib7BjBm+vVCCGEEEIIp8mIoBBCCCGEs+RkESGEEEIIcTOQEUEhhBBCCCepm+xkEaW1LusM1wvZEEIIIcT16brpvtJWri1Vv2Du2vm6yV4UGREsID09vawj4OnpCUDy9FllnAT8+/flcOKZso4BQFigD7uPxJV1DACaVKtM6vzFZR0DAN9ej3F6+JiyjgFA8MjBpMy8Pr7Z0e+FZ0hLSyvrGACYzWbJUoTrJYvZbAaQLIVcj1nEP0MaQSGEEEIIZxlurtMrpBEUQgghhHCWXEdQCCGEEELcDGREUAghhBDCSTfbWcPSCAohhBBCOEsuKC2EEEIIIW4GMiIohBBCCOEs2TUshBBCCPEfJWcNCyGEEEKIm4GMCAohhBBCOEnJySJCCCGEEOJmICOChWzbto0JEyZgtVrp2rUrTz/9tMP0nJwchg8fTkxMDGazmTFjxlCpUiUA5syZw6pVqzAYDAwaNIgWLVoAtu8wHjVqFIcPH0YpxbBhw2jQoEH+Mr/88ksmTZrEhg0b8r9r+Ep2HDvKpM0/YNWaB8Lr06txM4fpv8XHMnnzjxxOTmLkvZ1pX6NW/rQ7p35INT9/AII8vRj/wEOl3kZaa2ZOnsjuHdspV64cr78zlOq1al9W99fBA0wcPYqc7GyaNG/BC6+87nD9peVfLeCz6VNZtOY7zN7e/Bj5HUsXzEcDFSpUoP8bb1Kteo0Ss8yfMZ3fdu+kXLlyPP/Gm1StXvOyuqN//cnMiePJyc7mtibN6PVi//wskatW8P1a28/ttqbNeKLPC+Tl5jJ76kcc/etPDErR88X+1G1wm9PbaPvhv5i0fh0WrXnwtjt4qlUbh+m/Hj/GpO+/5XBCAu91685ddcIBOHX2LG8vW4TWmjyLhUeaNKdboyZOr7cortWr4XVfB1AGLvzyG5lbdjhMd7k1FK97O2AKCuTsspVk7z+YP83j7naUq1EdgMyorWRFx1x1jh1HjzBp0wYsVisP1G/IU01bOEz/Ne4Ekzdt5HBSIiM7deGumpfeU60/GkeYfwBgf992feSqcwghxDUxGss6wd/qqhpBpdRcYK3WepmT9VXs9fWuYl3vaK1Hl3a+KyxvEzBQa72n8DSLxcK4ceOYPn06QUFBPPXUU7Rp04Zq1arl16xatQpPT09WrlzJ+vXrmTp1KmPGjOHIkSNERkayZMkSkpKS6NevH8uXL8doNDJhwgRatmzJ+PHjyc3NJSsrK395p0+fZseOHQQHBzuV32K18uGmDUx6qDuBHp48t/hLWlcNo6q9uQPbf5Tv3n0fi37Zfdn85Uwm5vXoXYotdrk9O7YTHxfLZ4uWcnB/NNM+HM+kTz+/rG76h+N55c3B1KobzrBBr7Fn53aaNG8JQFJCAr/s2kVA0KXXHVSxEuOmfYKnpxe7d2xjyvgxRS63oN937+L0yTg+nP0Fhw/EMHfaZEZOmn5Z3Zxpk3ju5dcJq12HD4YN5o89u2jYpBn7f/+Vn3dsY/T0T3FxdSXt7BkAfvzuGwDGfvIZaWfP8MHQwbw3+WMMTnzHpMVq5cNv1zL5yd4Eennx7OyZ3FmzNlUDAvNrgs1mhj7wEAt2bHWY19/Tg1lP98XVZOJ8TjZPzpzOnTVrEeDpVeJ6i6QUXp06cuaLr7CcO4ff80+TdfAvLEkp+SXWtHOkrVyLe0vHPyjK1QjDpWIwKTNmo4wmfJ95kuxDh9HZOaWOYbFamfBDJJMffpxAT0/6LJjLnWE1HN63wZ5eDLmnEwv37Lxs/nImE/N6PVvq9QohhLiyG2HX8DulnUEpdVXtenR0NKGhoVSuXBkXFxc6duxIVFSUQ01UVBSdO3cGICIigl27dqG1Jioqio4dO+Lq6kpISAihoaFER0eTkZHBr7/+SpcuXQBwcXFxGPWbOHEiL7/8stNXKo9JOE1lbx9CzN64GI1E1KjNT0cOO9RU9DJT3T/gH7v6+Y4tm4m4936UUtQOr0dmRgapyckONanJyZzPzKR2eD2UUkTcez87ftqcP/3TqZN4tt9LDmfh163fAE97w1M7vB4pSUklZvl5x1ZaR3REKUX1OnXJzMjgTGqKQ82Z1BQunD9P9Tp1UUrROqIje7bbGrAN36zhgUcfx8XVFQCztw8A8SeOE97w9vznKrh7cPSvP53aPvtPxlHZ15cQH19cjCY6hNdn858HHGoqevtQPSgYQ6GfkYvRhKvJ9vdZbp4FrbVT6yyOS0glLKlnsJw5CxYrWfticKvtOGJqOZtGXkISFFqXMdCfnOOxYNXo3FxyExIpV70aV2P/6VO296237X3boXZdfjr8l0NNRbM31QMCL9smQghxPVFKlepWzDLuVUodVEodUkq9XcT0ckqpxfbpO+0DaiilXJRS85RSe5VSMUqpwdf6epxqBJVSTyml/lBK/a6Umm9/uo1SaptS6ohS6hF7nVJKfaCU2mcP+VgRyzLaa3bbl/mC/fmKSqnNSqnf7PPfqZQaC5S3P7fAXtdTKbXL/tzMi02fUipDKfWhUup3oIVSKkIp9as9x+dKqXIlvc7ExESCgoLyHwcGBpKYmFhsjclkwsPDg7S0tGLnjY+Px9vbm5EjR9KjRw9GjRrFhQsXANi0aROBgYHUrHn5rsziJGWkE+hxqZEM9PAgKTPd6flz8vJ49qv59F28gM2F/iN2VnJSEgGBl0a3/AMCSU52bNqSk5PwDwhwrLE3dtt/2oxfQMAVd/tGrl1Do2bNS8xyJiUZP/9L6/H1D+BMoab0THIyvg41/pxJsdWcjo/j4L69DH+1P/836DUOH7Q1bLdUDeOXHduwWCwknj7FsUN/kpLk+F4oTlJ6OoFe5vzHgZ5eJKWfc2pegIS0NHp+Op0uUz6kZ8vWVz8aCBi8PLCkXVq3JS0dgxOHHwDknbY3fi4mVIXyuFa5BYP56rIkZaQTVGC9AR6eJKWX8n27YC59F35B1CHnGnIhhPhHGAyluxVi71umA/cBdYEnlFJ1C5X1Ac5orasDHwHj7M93B8ppresDjYAXLjaJV6vEXcNKqXBgCNBSa52slPIFJgIVgdZAbWA1sAzoBtwGNAT8gd1Kqc2FFtkHSNNaN7E3Z1uVUpH2eddrrd+3b6QKWuuflFIvaa1vs2epAzwGtNJa5yqlPgaeBL4A3IGdWus3lFJuwF9AhNb6T6XUF8D/gElXvaWuksVi4eDBg7z55pvUq1ePCRMmMHfuXJ555hnmzJnD9OmX78b8J339zPMEeHgSn3aWl5cvoZpfAJW9vf+19WdlZbF4/lzenzil2Jrff/mZyG9W88H0T//xPFaLhYz0dEZ8NI0jfx5k2phRTJzzJW3vuY+TsScY+vL/8A8MokadcKd2C/8dgsxmvny+P0np53hr6SLuqh2Or4fHv7LugnIOHyU7pCJ+fZ7Cev48uXEnwXptI5RXa/lz/Qjw9CT+7FkGLFtImH8Ale2jt0IIcYNpChzSWh8BUEp9BXQB9heo6QKMsN9fBkxTtuFFDbgrpUxAeSAHcH6koQjOHCN4F7BUa50MoLVOtQ91rtRaW4H9SqmLQ2GtgUVaawuQoJSKApoAfxRYXkegwcVRRMAM1AB2A58rpVzsy/6tiCwR2Drg3fYM5YGLwzQW4Gv7/VrAUa31xaGDeUB/SmgEAwMDSUhIyH+cmJhIYIGRr4I1QUFB5OXlkZGRgdlsLnbei7d69WyHR0ZERDB37lzi4uI4efIkTzzxRH79k08+yddff01AgZG0wgI8PEnMuDSSkpiRQYC7cyM8F+cHCDF7c3vlUP5KSnCqEVyzfBnr16wCoEbtOiQVGClNTkrE398xs79/QP4IYH5NQACn4uNIOHWK/s/0tD+fxMt9evPRp5/j6+fH0UN/MXncaN774CO8zGaK8v2alfz43ToAqtWsRUqB0cjU5CR8/P0d6n38/Ul1qEnGx35smo9/AE1atUYpRVit2iilSE9Lw8vbm54v9MufZ+TrA6gYUrnE7QQQ4OlJ4rm0/MeJ6eeualQvwNOLagGB/BZ7PP9kktKynsvAWGAUz2j2xFqKkbjMzdvI3LwNAPPDD5KXknpVOQI8PEkosN6kjHQCnByZBPJrQ7y9uaPyLfyZmCCNoBCibFz74SshQGyBx3FAs+JqtNZ5Sqk0wA9bU9gFOAVUAF7TWl/dL2a7axniyC5wvzRbRQEDtNa32W9VtdaRWuvNQBsgHpirlHqqmHnnFZi3ltZ6hH1alr0BvWp169YlNjaW+Ph4cnNziYyMpE0bx7M927Rpw9q1awHYuHEjTZo0QSlFmzZtiIyMJCcnh/j4eGJjYwkPD8ff35+goCCOHTsGwK5du6hWrRrVq1fn+++/Z82aNaxZs4bAwEAWLFhwxSYQoHZQMHFnz3Ay7Sy5Fgsb/zpA62phTr2+c1lZ5OTlAXD2wnn2noyniq+fU/M+0O0Rps2Zz7Q582lxZ1s2frcOrTUHovfh7uGBb6Hmy9ffnwru7hyI3ofWmo3fraN56zZUDavOojXfMnfpSuYuXYl/QABTZs/D18+PxITT/N+QwQwcMpzKt9xSbJa7H+jK6OmfMnr6pzRq0YotGyPRWnMoZj8V3N3xKfSafHz9KF+hAodi9qO1ZsvGSBo1bwVA4xat2P+77W+OU3Gx5OXl4Wk2k52VRVaWbRf+3l/2YDAaCbm1ilPbqk6lEGJTUzl55gy5ljw2RO/lzpqXn1VdlMRzaWTl5gJw7sIF/og9wS1+/iXMVbzckycx+vpg9DaD0YBbvTpkH3DykAClUOXLA2AKCsAUFEjO4SNXlaNOcEXizqbmv283HNhP62rVnZq38Pv2j5PxDieZCCHEv8qgSnf7ezXFNvBVCagKvKGUurqDt+2cGRH8AVihlJqotU6x7xouzk/Y9lfPA3yxNXaDALcCNeuB/ymlfrDv3q2JrfnzB+K01rPsu4zvwLbLN1cp5aK1zgU2AquUUh9prRPtWTy11scL5TgIVFFKVddaHwJ6AVGUwGQyMWjQIAYMGIDFYuHBBx8kLCyMGTNmUKdOHdq2bUuXLl0YNmwYXbt2xcvLi9GjbSc0h4WF0aFDB7p3747RaOTNN9/EaD/FfNCgQQwdOpTc3FxCQkIYPnx4SVGKz2gw8Fq7CF5f9TUWq5XO4fWp5ufPrB1bqB0YzJ3VqhOTcIrBa1eRnp3F1qOH+WznNhb0fIbjZ1IY/8P3GJTCqjU9Gze7qv9Qm7Roye4d2+jz+COUc3PjtcFD8qe99Ewvps2xHUba7/VBfDR6FNnZ2TRu3oLGzVsUt0gAFs6ZTXpaGh9P/AAAg9HIlM/mXnGe25o04/fdO3nj2V64urnx/GuD8qe90/95Rtt3Lz/d/xU+tV8+pmGTpjRs0hSAth3v5dOPPuDtF/tgNJl44Y23UEpxLu0s4959C4PBgI+fP/8b6PzxuCaDkTfu7cSri77AarXS+bY7qBYQyKebNlKnUgh31qzN/pPxvL10EelZF9jy10E+i/qBhS8O4FhyElM2rOfi+H+P5q2oHhhU0iqLZ9WcW/c9Pr0eB4Piwq9/kJeUjEf7O8k9eYrsg4cwVaqIz+PdUOXdKFerBpb2d5Iy/TMwGvB71jZya83OJm356qveNWwyGHi9fUde+3oxFq3pXK8B1fwDmLV1M7WDK3JnWA32nz7F4NXLSc/KYsuRQ8zevoUFvZ/jeGoy475fj0HZVt+rSXNpBIUQN7J4ILTA48r254qqibPvBjYDKUAP4Dt7T5SolNoKNAau7q90QDlzVqJSqje2hs4C/Gp/Ov/yMUqpDK21h33/9XhsB0Bq4P+01osLXj5GKWUA/g94ANsIXxLQ1X4bBOQCGcBTWuujSqlxwIPAL1rrJ+0noAzGNpqZC/TXWu+4mKFA5ghgArZmdzfwP611tir+8jE6vRS7zP4pF88oTp4+q4yTgH//vhxOPFPWMQAIC/Rh95G4so4BQJNqlUmdv7isYwDg2+sxTg8fU9YxAAgeOZiUmXPKOgYAfi88Q1paWsmF/wKz2SxZinC9ZDHbD0GRLI6uwyzXzeUEMrfsKNVfxO6tmztktzd2f2I73C0eW4/SQ2sdXaCmP1Bfa/2iUupxoJvW+lGl1FtAba31M0opd/u8j2utCx6CVypOXUdQaz0P23F2xU33sP+rsTVzgwpNPwbUs9+3YrskTOHLwhS5Dq31W8BbBR4vBi77X7hgE2h/vBG4vYi6dsW9DiGEEEKIf5L9mL+XsO0hNQKfa62jlVLvAXu01quB2cB8pdQhIBV43D77dGCOUioaW3M851qaQJBvFhFCCCGEcN7fcK1TrfU6YF2h54YVuJ+F7VIxhefLKOr5ayGNoBBCCCGEs/7+E0DK1I3wzSJCCCGEEOIfICOCQgghhBDOUjfXGJo0gkIIIYQQTlKya1gIIYQQQtwMZERQCCGEEMJZf8NZw9cTaQSFEEIIIZx1kzWCsmtYCCGEEOI/SkYEhRBCCCGcpAw31xiaNIJCCCGEEM6SRlAIIYQQ4j/qJjtGUGmtyzrD9UI2hBBCCHF9um66rwu/7ytVv1C+Yb3rJntRZESwgPT09LKOgKenJwDnvttYxknA694ITqVllHUMACqaPYg9c66sYwAQ6uNF+saoso4BgGdEWzI2bSnrGAB4tGvN+T2/lnUMACo0vp2/Wt9T1jEAqLFlPWlpaWUdAwCz2SxZisgBSJZCrscs142b7ILS0ggKIYQQQjhJ3WRfMXdzvRohhBBCCOE0GREUQgghhHDWTXayiDSCQgghhBDOusmOEZRdw0IIIYQQ/1EyIiiEEEII4SzZNSyEEEII8d8kZw0LIYQQQoibgowICiGEEEI4S04WEUIIIYQQNwMZERRCCCGEcJbh5hpDk0bwCrZt28aECROwWq107dqVp59+2mF6Tk4Ow4cPJyYmBrPZzJgxY6hUqRIAc+bMYdWqVRgMBgYNGkSLFi3Izs6mb9++5ObmYrFYiIiI4IUXXnAuS0w0Hy5fitWq6dK8JU/f7fg9qjl5uQz/ch4HYmMxu7szuncfKvn5kZuXx+jFC4mJPYFBKd7o1p1GNWqSmZVF3ykT8+dPPHuG+xo35Y1u3UvMorVm6ocfsGPbVtzc3Hh72Ahq1q5zWd3BmBjGvjec7OxsmrdsxYA3BqGU4pMpk9j202ZcXFyoFFKZt4aNyP+OZYCE06fo/Vh3nu77PI/3fMqp7XMx1/SJH7Jr+1bKlXPjzaHDqVG79mV1fx6IYfyokeRkZ9O0RSv6v/4GSinmzPyEbZs3YzAovH18GTR0OP4BAU6vf1v0PiYsXYxVW+nasjVP33Ofw/Sc3FyGz5tDTOxxzO7ujOnzPJX8/Mmz5DHqy/kciD2OxWKlU7MWPHOvbd4FG79n1bYtgKJ6SAjDez1NOReXkrPs28uEJYuwWDVdW9/JM/fef1mWYXNmE3PClmVs3xep5O9PriWPUV/M48CJ41isVjo1b8Gz93UiOzeXvhPGkZOXi8ViJeKORrz4YNcSc2z9/Tc+mD/P9hlqdxfPPtjlshxDP5lOzLGjmD08GDfgFSoFBALw54nj/N/sz8i8cAGDUnw56n3KuboybclXrP1pM+cyM9n2+bwSMxSlQrPGBLzyIhiMnFv7LWe+XFJknUfb1lR8fygn+rxE9sG/MAUHceuCWeSeiAMgK/oAiROmXFUGIcSNSd1kZw3f8G2tUmquUuqRv3u5FouFcePGMWXKFJYuXcr69es5cuSIQ82qVavw9PRk5cqV9OjRg6lTpwJw5MgRIiMjWbJkCVOnTmXs2LFYLBZcXV2ZMWMGixYtYuHChWzbto29e/eWnMVqZfzSxUx+4SWWDB5K5C97OHL6lGOW7dvwKl+BFUNH0qPdXUxdswKAFdu3AvDV20OY1u9lJq38GqvVirubGwvffCf/VtHHl/YNbnNq2+zctpW42FgWfL2SNwYP4aNxY4qs+2jcGAa+M5QFX68kLjaWXdu3AdC4aTPmLFrC5wsXE3rLrSycO8dhvumTPqJZi5ZOZSlo1/ZtxMeeYN7S5bw2+B0mjx9bZN3k8WN5ffC7zFu6nPjYE+y253q0Zy9mLVjEzPkLad6qNV9+/pnT67ZYrYxbvJApL73M0qEjWb9nN0dOnXSoWbVtK54VKrBy5Pv0uKsDU1csB2DDLz+Tk5fL4iEj+HLwuyzfspmTKckknj3D4k0/8MVb77Jk6AisViuRe3Y7lWXsogVMGfAay0aMYv3unRw56Zhl5daf8HKvwKr/G8OTHe5myvJltiw/7yE3L5clw9/jy3eHsvynKE4mJ+NqMjHjtYF8NXQkC4cOZ1v0PvYeOVxyjrmfM+3Nt/l6/Id8t30rh+PiHHNs+hFPdw9WT5zMk/d1YvKihQDkWSwM+Xg67z77HF+Pn8CsIcMwmWx/t7a5vRHz33u/xO1QLIOBgNf7Ez9wCMd79sWzQ3tcq9xyWZkqXx7v7l25EB3j8Hxu/ClOPNOPE8/0kyZQCHHDu+EbwX9KdHQ0oaGhVK5cGRcXFzp27EhUVJRDTVRUFJ07dwYgIiKCXbt2obUmKiqKjh074urqSkhICKGhoURHR6OUokKFCgDk5eWRl5fn1F8W0cePERoQQGV/f1xMJu6+oxFRe393qNm87w86NW0OwF0Nb2f3nwfRWnP09Cma1KwFgK+nJx7lKxATe8Jh3uOJCaRmpHN7WHWnts3WzVHcc38nlFKE169PRnoGKclJDjUpyUlkZmYQXr8+Sinuub8TW6I2AdCkeYv8/9Tr1qtHUmJC/nw/bfqRipUqUaVamFNZCtq2OYq77bnq1qtPRkY6KcnJhXIlcz4zk7r1bLnuvr8TWzfbfq7u7h75dReyLgDO/9UXfewooQGBVPYPwMVkomOjJkT97vgzivrjNzo3bwFAxO2N2HUwBq01oMjKziHPYiErJxcXkxF3t/IAWCxWsnNz7dNyCDCbS85y9AihgYFUDrBnadyUTb//6pjl99/o3NzWbEfc0ZhdB2xZFIoL9izZObm4GE24l3ezvXfd3ABbk5ZnsZR4La19hw8RGhRM5cAgXEwm7mnekk0/73Go2fTzHh5o0waADk2bsSs6Gq012/f+QY1bbqHWrbcC4O3pidG+O6ZBjRoE+PiUuB2K41anFrlxJ8k7eRry8kjfsAn31i0uq/Pr25vUBUvQOTlXvS4hxE3IYCjd7Tp3/ScsQCk1VCl1UCm1RSm1SCk1sND0Y0opf/v9xkqpTfb7HkqpOUqpvUqpP5RSD5e0rsTERIKCgvIfBwYGkpiYWGyNyWTCw8ODtLS0K85rsVjo0aMHd999N82aNaNevXolvu6ktLMEeV/6jy/I24ektDTHLGfPEmT/z9FkNOLhVp60zExqhFRm874/yLNYiE9J5kDcCRLOnHGYN/KXn7n79kZOD3cnJSYSUOD1BQQGkpSYVKgmiYDAgjVBJBXafgDr1qymactWAJw/f55FX8yj93PPO5WjsOSkwusMJDkpsVBNIv72XY+Xai5l//yTj3niwU78sP47nn7eud32cHH7++Y/DvTxJjHtTLE1JqMRj/LlScvMoMMdd+BWzpV7Bw+i85C36dmhI2Z3dwK9fejZoSOdh7zNvYMH4VG+PM3rhpc6S5CPD0lnzzrUJJ09Q5CvY5azmRlENGpE+XKu3PPm63QaPIhed9+D2d4gW6xWnhg1grsHvkbzOnWpX7XalXOkphLk53cph68vSWdSHWvOpBLs63cpR4XynM1I58SpUyig39jRPPHu28xds7rE1+0sU4AfeQXer3lJyZgC/B1qytWsjktgAOe377psfpeKwYR+Pp2QqR/g1qDkz68Q4iajVOlu17kbphFUSjUBHgYaAvcBjUsx+1AgTWtdX2vdAPjhH4joFKPRyMKFC1m3bh3R0dEcOnToH13fg81aEGj24akPxzFx+TIaVKmGodCp79//sod7GjX5R3MUZf7nszEajdxtPx5u7qyZdH+iR/6oaVl49n/9WLT6G+66515WLSv6uLG/275jxzAaDHw3ZjyrR43myw3fE5ecxLnzmUT98Rur3xvNd2PGcyE7m3U7d/yjWaKPHsVgMPDd+A9Z8/44vtywnjh7o2w0GFg0dATfjp3AvmNHORQfV8LSrp7FauHXPw/yfv+X+HzYSH7Ys5ud+0o+jOJvoRT+A54nadqnl+dKSeXowz2JfbY/ydNmEjz8bQxl+H4VQohrdSOdLNIKWKW1zgKylFJrSjFvB+Dxiw+01meuUAvYRvESEi7tskxMTCQwMLDImqCgIPLy8sjIyMBsNjs1r6enJ40bN2b79u1Ur37lXbIBZm8Szl6KnHD2zGW7CAO9vUk4c4Ygbx/yLBYysi5gdndHKcXr3S4dQvnsRx9wS4FRsz/j47BYrdQJvfwYqYJWLF3C2pW24w5r161LUoHXl5SYSECg40kVAYEBDrt8kxITCCiwDb5du5rtW35i4sef5I9ExuzbR9QPG5kxbQoZ6ekYDAZcXcvR7dHHis21atkS1q1aCUDNOnULrdNx9A/AP8BxlNBWc/kJIRH33Me7r79C777OjQratv+l0a7EM2cJNPsUWRPkY/8ZXbiA2d2D9bvX0KJuOCajCV9PLxqGhRFz/DhKQSU/f3zsJ9K0v+0O/jhzAAYNAAAgAElEQVRymPubNS9VloQzZwjw9naoCfD2ISE1lSAf3/ws3u4ezNy1k5bh9XAxmvD18qJhWHX2Hz9G5QLbyLNCBRrXqs226H1UD6lcfA5fXxJSUi7lSE0loMBIJUCgjy+nU1MI8vOz5Th/AW8PTwJ9/bijdh18PL0AaH3bbRw4doxm9epf8bU7Iy8pBVOB96spwJ+8pEuHEBgqlKdc1SpUnjoeAKOvL5XGjeTkW8PJPvgXOjcXgOyDh8g9eRKX0BCyD/51zbmEEDeIG2CUrzRumBFBJ+Vx6TW5XcuC6tatS2xsLPHx8eTm5hIZGUkb+7FMF7Vp04a1a9cCsHHjRpo0aYJSijZt2hAZGUlOTg7x8fHExsYSHh7OmTNnSE9PByArK4udO3dSpUqVkrPccisnkhKJT0kmNy+P73/5mTb1GjjU3FmvAd/sso0W/fD7rzSpUQulFFk5OVzIzgZg54EYTEYj1YIr5s+3/uc9dLyj5MHVh7o/yuwFi5i9YBGt27Zj/bpv0FoTvXcv7h4e+Pk7NlN+/gG4u3sQvXcvWmvWr/uGVm3a2nJs38ZX879g9Icf4WY/Fg5g6qzZLF61lsWr1vLI4z148ulnrtgEAnR55FFmzl/IzPkLadW2Hd/bc+3fdzGX4y4/P39/Kri7s3+fLdf3676hpT1X3IlLx05u2xxF6K1VStwuF9W9tQqxiYnEJ9t+RpE/76ZNg4YONW0aNGTtju0AbPz1Z5rUqo1SiiBfX/YcPAjAhexs9h09SpWgYIJ9fNl37AhZOdlordl98ABVCvzsis1SpSqxiQnEJyfZsuzZRduGjicCtW1wG2t32E6S2fjLHprUtmUJ9vVl94ED+Vn2Hj1C1eBgzqSnk37+PABZOTnsjNlfYpbwamGcOH2a+MREcvPyWL9jG+0aNXLMcUcj1mzeDMCGXTtpEh6OUoqWDRpwKPYEF7KzybNY+DkmhmohISW+dmdkHTiIa2gIpopBYDLh2aEdmVsvjbRaM89zpPOjHOvem2Pde5O1Pya/CTR6m/OP+TFVCsa1cgi5J0//LbmEEDcGZVClul3vbqQRwa3ATKXUGGy5OwOF990cAxoB32LbjXzR90B/4FUApZRPSaOCJpOJQYMGMWDAACwWCw8++CBhYWHMmDGDOnXq0LZtW7p06cKwYcPo2rUrXl5ejB49GoCwsDA6dOhA9+7dMRqNvPnmmxiNRpKTkxk+fDhWqxWr1crdd9/NnXfeWeILNxmNvPnwY7z8yTQsVisPNm9BWMVKzFi3hjqht9K2fgO6NG/J8C/n8tCo4XhVqMD7vfsAkJqezoAZUzEoRYDZm5E9ezsse8NvPzP5hf4lZiioeavW7Ny2lSe7daGcmxtvDR2RP63Pk08we8EiAF59823GvjeCnOwsmrZsRTP7sYCTPxhHbk4ub7zUD4C69erzxuB3SpWhKM1atmLXtq089chDlHNzY9CQYfnTXujVg5nzbWekvjzoLT4YNZLs7GyatmhJU/sZyp99PI24E8dRykBQcDCvvjXY6XWbjEYGPfYEA6ZNsv2MWrQirFIlZqxZRZ1bb6Vtg9vo0rI1w+bOpuvwd/Gq4M7oPn0BeLRNO0bOn8ujo4ajNTzQoiU1KttG2iJub8STY/4Po8FIrdBQurV28v3y+JO8NPkjLFYrXVq1JqxSCJ+sXkndW6vQtuFtdGl9J0M/n0WXIYNtlxt6zjby+Wi7uxgx73O6jxiKRvNgi9bUqBzKX3GxDJ87G4tVo7WVDo2aXNboFpXjraefod+40VitVrq0bU9Y5VA+XraEulWr0a5RY7q2a8+QT6bz4Ouv4OXuwdgBLwPg5e5Bz/s60XPouygFrRvezp233wHApIUL+HbbVrJycrjnpX481L49Lz5c8mWP8lmsJE6cTsjE0WAwcO6bSHKOHse3z1NkH/jToSksrHzD+vg+9xTk5aGtVhInTMFq/+NOCCFuRMp21uKNQSk1AugBJACJwHfYdhmv1VovU0rdCcwGzgGbgMZa63ZKKQ9gOrYm0QKM1FovL7R4nX4d/EK/eD29c99tLOMk4HVvBKfSMso6BgAVzR7EnjlX1jEACPXxIn1jVMmF/wLPiLZkbNpS1jEA8GjXmvN7fi258F9QofHt/NX6npIL/wU1tqwnrdDJXWXFbDZLliJyAJKlkOswy3UztJZ78nSpGieXSsHXTfai3EgjggATtNYjlFIVgM3Az1rrWRcnaq1/AmoWnklrnQH0Lvy8EEIIIcR/2Y3WCH6qlKqL7fi/eVrrX8o6kBBCCCH+Q26A4/5K44ZqBLXWPco6gxBCCCHEzeKGagSFEEIIIcqSUjfXBVekERRCCCGEcNZNtmv45mprhRBCCCGE02REUAghhBDCSRfcypWq3vMfyvF3kRFBIYQQQoj/KGkEhRBCCCH+o6QRFEIIIYT4Fyml7lVKHVRKHVJKvV3E9HJKqcX26TuVUlUKTBtsf/6gUuqav0JJGkEhhBBCiH+JUsqI7Wtv7wPqAk/YvyyjoD7AGa11deAjYJx93rrA40A4cC/wsX15V00aQSGEEEKIf09T4JDW+ojWOgf4CuhSqKYLMM9+fxkQoZRS9ue/0lpna62PAofsy7tq0ggKIYQQQvx7QoDYAo/j7M8VWaO1zgPSAD8n5y0VuXxMAZ6e189J3l73RpR1BAAqmj3KOkK+UB+vso6QzzOibVlHyOfRrnVZR8hXofHtZR0hX40t68s6Qj6z2VzWEfJJlqJJlqJdT1nEP0MawQLS09PLOkJ+M3rwdHIZJ4Fawf781fqaj0P9W9TYsp7T740r6xgABA97iwu/7yvrGACUb1iP3JOnyzoGAC6Vgsk9nVDWMQBwCQ66Lj7PYPtMX09Z0tLSyjoGYGswrocsFxsdyeLoesxyE4kHQgs8rmx/rqiaOKWUCTADKU7OWyqya1gIIYQQ4t+zG6ihlKqqlHLFdvLH6kI1q4He9vuPAD9orbX9+cftZxVXBWoAu64ljIwICiGEEEL8S7TWeUqpl4D1gBH4XGsdrZR6D9ijtV4NzAbmK6UOAanYmkXsdUuA/UAe0F9rbbmWPNIICiGEEEL8i7TW64B1hZ4bVuB+FtC9mHnfB97/u7LIrmEhhBBCiP8oaQSFEEIIIf6jZNewEEIIIYSTco0uZR3hbyUjgkIIIYQQ/1EyIiiEEEII4SStyzrB30saQSGEEEIIJ1lvsk5Qdg0LIYQQQvxHyYigEEIIIYST9E02IiiNYCFaayZMmMDWrVtxc3NjxIgR1K5d+7K6mJgYRowYQXZ2Nq1atWLgwIEopUhLS2Pw4MGcOnWKihUrMnbsWLy8vDh27BgjR47kwIED9OvXj169ejksz2Kx0KtXLypVqsTMmTOLzDVryiT27NxOuXJuvDr4XcJq1rqs7tDBA0we8z7ZOdk0btaCvi+/ilIqf/qKxYuY8/E0vlz1DV7e3ixftICoDZH5GeKOH2f+qm/w9PJyantVaNaYgFdeBIORc2u/5cyXSxymm7t0wtztAbBasV64QOL4yeQcO5E/3RQUwK3zZ5Ey50vOLlrm1DqL4xpWFa97IsBg4MKvv5O5dafDdJdbKuN1TwSmoEDOfr2a7JiD+dM8OrSjXPUwlFJkHzlK+vqNpVr31t9+Zfycz7FarTwUEcGzXbs5TM/JzWXItCnEHDmC2dOTca++TkhgIPGJiXR77RVurVQJgAY1ajLk+RcAyM3LZczsz9izPxqDUrz0eA86NG9RYpYtu3YydtpULBYrD3fqxHM9nnTMkpPD4DGj2f/nn3h7eTFh+HBCgiuybc9uJn36Kbl5ubiYXHjjxf/R7I47AJj82SxWR67nXHoGu7/9zuntsmXnTsZOnYLFas/yZM/Ls4x+v0CWEYRUrMjZtDReGzaMfQcP0PXee3n31dfy51m3YQOzvpwPShHo78/Yd4fg4+1d5Pq3bdvGhAkTsFqtdO3alaeffvqy9Q8fPpyYmBjMZjNjxoyhkv1nMWfOHFatWoXBYGDQoEG0aHFp21/8vAYGBjJp0iTA9hn9+OOP2bhxIwaDgUceeYTHH3+8xG10rb9zNmzYwKeffsrRo0eZN28edevWLXGdQghx0U2za1gp1U4ptfZal7N161ZiY2NZsWIF7777LmPGjCmybsyYMQwZMoQVK1YQGxvLtm3bAJg7dy5NmzZlxYoVNG3alLlz5wLg5eXFwIED6dmzZ5HLW7RoEVWrVi021887t3MyLo6ZCxbTf+CbfDJxQpF1n0ycQP9BbzFzwWJOxsXxy84d+dOSEhP4bfcuAoKC8p/r9sSTTJ49j8mz5/FU3xcJb3ib000gBgMBr/cnfuAQjvfsi2eH9rhWucWhJP37HznR+0VOPNOPMwuW4j/gBYfp/i+9QObO3c6t70qUwuu+uzmzcCnJH3+GW3hdjP5+DiXWtHOkrVpH1t79Ds+7VA7BNTSElJmfkzxjNi4hFXG9NRRnWawWxsyexfR33mX5R5P4busWDsfFOtSs+GEjXu4erJk6nZ6dOjN5wfz8aZWDg1jywYcs+eDD/CYQYNbyr/E1m1k9eRrLJ06mUd3wkrNYLPzf5El8MnY8q+fOY93GjRw+dsyhZvm6b/Dy9OTbBQvp1b07E+1/ePiYzUwbPYYVn8/l/cGDGTzm0oXr27VsyVefXP4HSolZJn3EJ+M/YPW8L4rO8o09y8JF9Or+KBNnzgDA1dWVAX36MPB//Rzq8/LyGDt1Cp9PmsyKOXOpWS2MhSuWF7v+cePGMWXKFJYuXcr69es5cuSIQ82qVavw9PRk5cqV9OjRg6lTpwJw5MgRIiMjWbJkCVOnTmXs2LFYLJe+xamoz+uaNWtISEhg2bJlLFu2jI4dOzq1na71d05YWBjjx4/n9ttvd2p9Qohro7Uu1e16d9M0gn+XqKgo7r//fpRS1K9fn/T0dJKTkx1qkpOTyczMpH79+iiluP/++9m0aVP+/J07dwagc+fO+c/7+voSHh6OyXT5IGxCQgJbt26la9euxebauWUL7e+5F6UUtcPrkZmRTmqKY67UlGTOn8+kdng9lFK0v+dedmz5KX/67GlTePrFfg4jhAVt3riBNhF3l7iNLnKrU4vcuJPknTwNeXmkb9iEe2vHESvr+fP591V5N4fTrdzvbEHeqdPkHD3u9DqL4xJSEcuZs1jOpoHVSlZ0DG61ajjUWNLOkZeYVMQpXxplNIHRCEYjymDAknkeZ+07dIjQ4GAqBwXjYnLhnpat2bTbsbndtGcXD7RrB0CH5i3YtW9vib8gVv34A33sI4sGgwEfJxr0vQdiuKVSCKGVKuHi4sJ9d93FD1u3ONT8sHUrXe65B4CObduy85df0FpTp0ZNAv39AahepSpZ2dnk5OQA0LBuOAF+jo11iVliYrglpGCWCH7YUjjLFrrcc+9lWSqUL88dDRpQztXVoV5j+yV8ISsLrTUZ5zMJ9PMvcv3R0dGEhoZSuXJlXFxc6NixI1FRUQ41BT+vERER7Nq1C601UVFRdOzYEVdXV0JCQggNDSU6Ohoo/vO6bNky+vbti8Fg+7Xq6+vr1Ha61t85VatWpUqVKk6tSwhx7axal+p2vSuzRlAp5a6U+kYp9btSap9S6jGl1DGl1Bil1G9KqT1KqTuUUuuVUoeVUi/a51NKqQ/s8+xVSj1WxLKbKKV+VUqF2dfzuVJql/25LlfKlZSURHBwcP7joKAgEhMTHWoSExMJKjCqFhQURFJSEgCpqan42/8z9fPzIzU1tcRt8eGHH/Lyyy8X26ABpCQnERAYmP/YLyCQFPs682uSkvAPuFTjHxBASrKtZseWn/DzD6Bqdcfm6KLsrCx+2bWDlm3blZj3IlOAn62xsstLSsYUcPl/yuZuD3Dr4jn4/+85kiZ9DNiaQp8nHyVlzpdOr+9KDJ6eWNLO5T+2nEvH4Onh1Ly5cSfJOX6CwNf7E/j6S2QfPoolOcXpdSemphJcoBkJ8vMlMTWl2BqT0YhHhQqcTU8HID4xkcfeHEif4UP5JcY2WnkuMxOA6YsX8fhbAxk4cQIpZ8+WnCU5meAC75OggAASCzUVBWtMRhMeHu6cPZfmUPP95ijq1qiJa6FGrDSKzpJUbI3JZMLD3Z2zaY5ZCnIxmRj6+hs89MzTtO/2EEeOHaNbp05Fr7/Q5zQwMPCKn2WTyYSHhwdpaWlXnLe4z2t8fDyRkZH06tWLl19+mRMnTuCMa/2dI4QQ16IsRwTvBU5qrRtqresBFw88OqG1vg34CZgLPAI0B0bap3cDbgMaAh2AD5RSFS8uVCnVEpgBdNFaHwbeBX7QWjcF2tvr3f/pF2fPcsXmDuCnn37C19eXOnXq/GM5srOyWPblF/R49rlia3Zt20Kdeg2c3y1cCmnL13D8sWdImTEb3949APB7thdnl6xAX8j629dXWkYfb4z+fiR99DFJH03HteqtuNxS+V9Zd4CPD999PJPF4yfwRu+nGTxlEhnnz2OxWEhISaFhrdp8NW4CDWvWZOL8ef9KpkNHjzLx05kMe/2Nf2V9pZGbl8fiVStZ+tlsfly+gpphYXy24O/5Y8IZV/q85uTkUK5cOebPn0/Xrl157733/rVcQoh/j9alu13vyvJkkb3Ah0qpccBarfVP9qZpdYHpHlrrdCBdKZWtlPIGWgOLtNYWIEEpFQU0Ac4BdYBPgY5a65P25XQEHlRKDbQ/dgNuAWIuBqlVq1b/2rVrY7VaqVu3LqdPn84PmZCQQGCBUQ2wjQ4kJCQ41AQEBAC23UHJycn4+/uTnJyMj4/PFTfC77//zubNm9m6dSs5OTlkZmYycOBA+g58m29WfE3kWtvmqFGrDkkFRglSkhLxs6/zIr+AAJKTLtUkJyXh5x/Aqfh4Ek6d5JU+vfOff7Xvs3w4YxY+9t19P23cSJuIDlfMWlheUgqmwEsZTAH+5CUlF1ufvmETAW8MAMCtbm082rXG/399MHh4gNbo7BzSlq8udv4rsaanYzRfamKNXp5Y0zOcmrdc7Zrkxp1E5+YCkH3oCK6VK5F7Is6p+QN9fTldYDd9Qkoqgb5+RdYE+fmRZ7GQcf483p6eKKVwdbF9XVHdamFUDgrm+KmT1K0Whlu5ckQ0bQbA3c1bsuKHkk9gCfT353SB90lCUlL+7t7CNcEBgeRZ8sjIyMTbywzA6aREXhk2hNFvv8MtISFOvf7SZQkosiY4MJC8vDwyMjPxNpuLXeaBv/4CyM92T/v2zF6woOj1F/qcJiYmFvtZDgoKsq0/IwOz2VzsvJs3b3b4vGZkZDB06FBGjRpFYGAg7du3B6B9+/aMHDmS4ixZsoSVK1cCXPPvHCHEv+tGOO6vNMpsRFBr/SdwB7aG7/+UUsPsk7Lt/1oL3L/4uKTG9RSQBRQ8aloBD2utb7PfbtFaxxSc6eDBg9NXrVrFwoULadeuHevWrUNrzd69e/Hw8Mjf1XuRv78/7u7u7N1rO85r3bp1tG3bFoC2bduydq3tnJW1a9fmP1+cl156iXXr1rFmzRref/99mjdvzoQJthNBOj30cP6JHM3ubMOP679Da82B6H1UcPfAt9CxUb5+/lSo4M6B6H1orflx/Xc0a92aKmFhzF/1DZ8t/prPFn+Nf0AAk2Z9nt8EZmZksO/3X2nW+s4SNq+jrAMHcQ0NwVQxCEwmPDu0I3PrDocal8qV8u+7t2xKblw8AHH93+BY994c696bs0tXkDr/q6tuAgFy409h9PXB6G0GgwG38Dpk/3nIqXmtaedsJ4coBQYDrreGkleKXcPhYdU5ceoU8YkJ5Oblsn7bFto2buxQ07ZRE9bYj+nasGM7TezHcaaeS8NitZ2EEJdwmhOnTlE5KAilFG0bNWbPfttxaTv3/UG1yiWfwFKvdm1OxMcRd+oUubm5fPvDD7Rv2cqhpn3LVqxavx6AyKgomt1+O0opzmWk0+/tt3m17wvcUb++06//ilni4og7ddKeZSPtWxXK0qoVq9Z/VyDLHVccRQ8KCODwsWOk2neTb9+zh2q33lpkbd26dYmNjSU+Pp7c3FwiIyNp06aNQ02bNm3yP68bN26kSZMmKKVo06YNkZGR5OTkEB8fT2xsLOHh4Zd9Xps0acKoUaMAaNeuHXv27AHg559/5tZicgE8+uijLFy48G/5nSOEENeizEYElVKVgFSt9ZdKqbNA8fstHf0EvKCUmgf4Am2AQUBt4CzQB/heKZWptd4ErAcGKKUGaK21Uup2rfWvxS28VatW+QeCu7m5MXz48PxpPXr0YOHChQC8/fbb+ZdyaNmyJa3s/8H17t2bwYMHs2rVKipWrJh/BmBycjJPPfUUmZmZKKVYtGgRS5YswcPDuePYGjdvwc87tvNCj0cpV86Nl99+J3/aK316M3m2bbfhi6+9weSx75OTnc0dzZrTqFnJlxvZ8VMUtzdpilv58k5lyWexkjhxOiETR4PBwLlvIsk5ehzfPk+RfeBPMrfuwPzwg1RofAfk5WFJzyDh/aLPdr5mWnPu2+/xefJRUIoLv+0lLykZj3atyT15muw/D2GqFIzPo91QbuUoV7M6lratSZkxm6yYg7hWvRX/F/sAmuzDR8n+87DTqzYZjbz97HP87/1RWK1WurS/i+qht/Dx4kXUDatOu8ZNeOiuCN6dNoUHBvTHy8ODcfbLofyyfz8fL/kKk9GEwaAY0vd5zB6eALzyZE+GTJvCB3M/x8fLzMh+/Z3IYuKdl1/lhTcHYrFaeei++6letSrTPp9NeK3atG/Vim6d7mfw6Pe578kemL08+WCo7T2+aMUKYk/GM+OLecz4wvZ++vSDCfj5+PDhjE9Yt3EjWdlZRHR/hG6dOtH/6WeunMVk4p1XX+WFgfYs99uzzJ5NeO1atG/Vmm73d2Lw++9zX48nMHt68sHwEfnzd3zsUTIyM8nNy/t/9u48LKrq8eP4+8CAKAz7ogJqmRtKtriEGrilppbWr6ws0xbz22KLS0qu5YILWS6VWeaWmFq5hokrJrhmmiJqqQiiAsMOIjAz5/fHwMgAClYKxXk9zzwyc8+95zNn7p05c869Izv37mVR6Mc0btSI14e8xODhb6HRaKjvVZdpwcE3rH/06NEMHz4cg8HA448/TuPGjVm4cCEtWrQgKCiIfv36MXHiRPr374+joyPTp08HTFfidu/enaeffhpra2vef/99rK2tb/p8hwwZwvjx4wkLC6NOnTqMHz++wtcL/v57zq5du5g9ezbp6em8++67NG3alAULFlSqbkVRbp2R/9aIoKiqIU4hRE9gNqaRvkLgdeB7oI2UUieEGFL091tF5eOANkAqMAt4FNNFhFOllKuFEJ2BUVLKvkKIBsAW4GXgd+BToAOmEdDzUsq+5USS2UUn71clrdbUCTh95cZTrHdKs7ru/NGpZ1XHAKDJ3q1c+WhmVccAoO7EMeQdO1HVMQCo3boVhZeuVFzwDrCpX5fCK0kVF7wDbOp6UR2OZzAd09UpS+ZNLsa5k5ycnKpFFqeiUxFUFkvVMMvNT7i/g+LTMm+p49TA1anaZC9PlY0ISim3YhqtK6lRieVLMV0sUny/UYlyo4tuJbe3G9hd9Hc8UPJH1yx/vE5RFEVRFEVR/7OIoiiKoihKZf0bfhvwVqgflFYURVEURamh1IigoiiKoihKJRmN/60RQdURVBRFURRFqaT/2MywmhpWFEVRFEWpqdSIoKIoiqIoSiX91/5nEdURVBRFURRFqaT/2g9Kq46goiiKoihKJakRQUVRFEVRlBrqv9YRVBeLKIqiKIqi1FBqRFBRFEVRFKWS/mM/I6g6goqiKIqiKJX1X5saFv+1J/Q3qIZQFEVRlOpJVHWAYjGJybfUX2jp7VltspdHjQiWkJ2dXdUR0Gq1ACSmV30WbxctyaHzqzoGAJ6jhpO9I7KqYwCg7RZE3tHjVR0DgNr3+VOYeLmqYwBg412PwouJVR0DABsf72qVpTq8t4Dp/eWPTj2rOgYATfZuJTMzs6pj4OTkBKCylFIds1QX/7UBNHWxiKIoiqIoSg2lRgQVRVEURVEqyfgfGxFUHUFFURRFUZRK+q91BNXUsKIoiqIoSg2lRgQVRVEURVEq6b92sYjqCCqKoiiKolSSmhpWFEVRFEVR/hPUiKCiKIqiKEol/ccGBFVHUFEURVEUpbL+a+cIqqlhRVEURVGUGkqNCCqKoiiKolTSf+1iEdURvAkpJaGhoURFRWFnZ8fkyZNp3rx5mXKxsbFMnjyZ/Px8OnbsyKhRoxBCkJmZSXBwMJcvX6ZevXrMmDEDR0dHtmzZwrJly5BSYm9vz9ixY2natGmFWRbMCeXAvijsatnx/oTJNC0ny5lTscycYsrSPqAjb40wZVk4fy779u7BRmNDPR8fxoyfhINWi16vJ3T6FP44fQqD3kCP3n0YOPilSreRbaMGOHQNBCG4dvwkVw/+arHcxqc+Dl0eRuPhTtbmn8k/c9b0uK83Dl0eNpfTuLqQuXkrBX+eq3TdANExJwhduxqjNNK/QyeG9HzUYnlBYSGTli0hNuECTvb2hLzyGvXd3NEb9Ez5dgWnEi5gMBjp0z6Al3qZ1l25YxsbovcCgnu8vZk0aAi1bGxumiPq6G/MWroEo9HIE1278XL/J8rkGP/ZfGLPncNJ68DMd0bg7elJYnIyT454l4b16wNwb5MmjB86jNy8PF6aNMG8fnJaKr07BfL+kIpfm70HDzBjwQIMRgP/17sPrw583jJLQQHBM0I4eeY0zo5OhE6ciHfdekQfPsynXy2iUF+IjcaGkcP+R/sHHrBY961xH3Dx8iXWf7O0whymLAeZ8dkCDEYj/9e7N68+N7BslpkzOHnmDM6OjoROmIh33bqmLF9/RaFej41Gw8hhw2h/vylLYWEh0+bP49DRY1hZCd5++RUeCQys9lmio6MJDQ3FaDTSv39/hgwZUsnGAGUAACAASURBVKb+SZMmERsbi5OTEyEhIdQv2i+WLFnChg0bsLKyYvTo0QQEBJCfn8/QoUMpLCzEYDDQrVs3hg0bBsCrr77K1atXAUhLS6Nly5Z8/PHHFbZRnfZt8Hjnf2BlTdbmLaR/u8ZiuVO/Pjg9+RgYjRjz8kieNZeCuHjzco2XBw1XfEXqkm/JWPV9hfUpimJJCOEKrAYaAXHAACllejnlBgPji+5OlVIuK3r8OeADQAKXgBeklLqb1fmvnxoWQsQJIdxvx7ajoqJISEhg3bp1jBs3jpCQkHLLhYSEMH78eNatW0dCQgLR0dEALF26lHbt2rFu3TratWvH0qVLAahfvz6LFi1i9erVvPLKK0ybNq3CLAf2RZGYkMCKtesYETyOT2eVn+WTWSGMDB7PirXrSExI4OA+U5YH27Xnm5Wr+Xrld/j6NiBs2RIAIndsp7CggMUrV7Nw2bdsWvcjVy5dqlwDCYG2e2cyfthI2pKV1GreFGs3F4sihqxssrZs51rsGYvHCxMSSV/+HenLvyNjzTpkod7iA6UyDEYjM1eHMe+tt1k74UO2Hj7EucuW2TdER6GtU4f1H05jYNfuzF/3IwDbj/xKgb6Q1eMn823wOH7cu4dLqTqSM9JZvXsny8eMY82EyRiNRiIOH6ogh4GQb77ms+Bx/DjnE36O2svZiwkWZdbt3IGjvT2b5i3ghd59mRv2rXmZj5cXa2aFsmZWKOOHmj7I7WvXNj+2ZlYo9dw96NaufcVtYjAwde5cvpgxk41LlhG+cydn4+Isyvy4JRxHrQNbvg1j0FNPMWfRIgBcnJxYMG066xYvYdrYsQSHTLdYb9uePdSpXbvCDBZZ5s3li5AZbPxmyQ2ybMHRQcuWFd8y6P+eYs5XJbJMnca6rxczbcxYgksce1+uXImrszM/LV/Ohm+W0KZ162qfxWAwMHPmTObNm8fatWvZunUr585ZfunZsGEDWq2W9evXM3DgQObPnw/AuXPniIiIYM2aNcyfP58ZM2ZgMBiwtbVl4cKFrFq1irCwMKKjozl+/DgAX3/9NWFhYYSFheHv70+XLl0qbCOsrPAY8SaJo8Zz4YWhaLt3wbZRA4si2dt2ET/4f8S/9AbpK9fiPnyYxXL3t4aRe+Dmx4ui/NtJKW/pdovGAjuklE2AHUX3LRR1FicB7YF2wCQhhIsQQgPMBbpIKe8FfgfeqqjCf31H8HaKjIykd+/eCCHw9/cnOzsbnc6yY63T6cjNzcXf3x8hBL1792b37t3m9fv27QtA3759zY+3bt0aR0dHAPz9/UlOTq4wS/SeSB4pyuLXyp+cnGxSS2VJ1em4mpuLXytTlkd69yZqj6nOtu0fwlpjGgBu0cqflOI6BeTlXcOg15Offw0bGxvq2NtXqn00db3Qp2dgzMwCo5H8U2eo1fhuizLGrGwMutSbXmZVq+k9FJy/AHp9peotFhN3Hl8PT3zcPbDRaOjxYFsijx2zKBP5+1H6PhQAQLf7H+Tg6diiA1NwLb8AvcHAtYJCbDTW2NuZOjkGg5H8wsKiZQV4ODndNMeJP//E16suPl5e2Ghs6NmhI7sPWX4Y7j58iMeCOgPQ/aEADp44Xuk3iAuXLpGWlckDLVpUWPb4qVM08PbGt359bGxseLRrV3ZGR1mU2RkVRb8evQDoERTEgSO/IqWkRZMmeLqbvlPd0+gurhXkU1BQAMDVvKss/34Nw14YVKnM5Wbp0pWdRV+SzFmio+jXo0eJLEfKydKIawUF5izrft5iHs2zsrLCpYLXpzpkiYmJwdfXFx8fH2xsbOjRoweRkZEWZUq+X3Tr1o2DBw8ipSQyMpIePXpga2uLt7c3vr6+xMTEIISgTp06AOj1evR6PUIIi23m5ORw+PBhOnfuXGEb2bVoRuHFS+gvXQG9nuztu7HvFGBRxlg0ygggattZHNf2Dwegv3zFdCwryn+YlLd2u0X9gGVFfy8D+pdTpiewTUqZVjRauA3oBYiim70wvRk4YhoVvKl/VUdQCLFeCPGrECJGCPFaOctfFEL8LoQ4JoRYUfRYIyHEzqLHdwghGpTdcvlSUlKoW7eu+b6Xl1eZTltycjJeXl4WZVJSUgDTlIx70QeIm5sbaWlpZerYsGEDHTp0qDCLLiUFT8/rWTw8vdClJJcqk4yHh1epMilltrVl00baBZjqDOrandq17Xiqby+e69eXAc+/gGMlPlgBrLX2GLNzzPeNOTlYaR0qtW5Jds2bcO3UmYoLlpKckYGXi6v5vqeLM8mZ6Tcso7G2xqF2bTJzc+j+wAPY1bKlV/Bo+o4fywvde+Bkb4+nswsvdO9B3/Fj6RU8GofatXnIr+XNc6SlUdft+qC0l5sbyelpNyyjsbbGoU4dMrKzAUhMSeaZMaN4ZfJEjsSeLLP9n6Oj6BnQocyHfLlZdCnU9fS4nsXdg+RS+0DJMhprDQ72DmRkZVqU2bYnEr8mTbC1tQVg/jffMPjpZ7Czq1Vhhuv16Kjr4Xk9i4c7ybrSWXTU9fQsymKNg709GVlZpbLsMWfJyjHtbwuWLOHpYa8x4sPJ6Mo5rqpbltLvE56enjd9L9FoNDg4OJCZmXnTdQ0GAwMHDuSRRx6hffv2tGrVymKbu3fvpm3btjg4VHxcajzc0CdfbxN9ig6NR9nJFqcnH6Ph6iW4v/4qKZ9+Dpg6hS7PDyB1ybdlyivKf41Rylu63SIvKeXlor+vAF7llPEGSk47XQS8pZSFwOvAcUwdQD9gcUUV/qs6gsDLUsoHgTbA20IIt+IFQoiWmObLu0opWwPvFC2aDywrGiZdCcy7w5mL85X5ID98+DAbNmxg+PDhdyzHt0sWY62xpnvR+XCnYk5gZWXN2s0/s/LHjawJ+5ZLiRfvWB4r+zpo3N1veVr47zoRF4e1lRU/h8xi45TpfLt9Gxd1KWRdzSXy96Ns/Gg6P4fMIi8/n/AD+29bDg8XF37+bCGrZ4Yy8sXBBM+fS06JUReArdFR9OrY6bZlKO3P8+eZs2gRE98bCcCpP/8g4dIluj/8cAVr3oYsceeZ89UiJr73HmDq+CSlpHBfy5as/XIRrf1aEvrlwhqXpZi1tTVhYWGEh4cTExPDn3/+abE8IiKCnj17/qN1Zv64iQvPvETqwsW4DjaNhrq9PMh0ikfetX+0LkWpjv7u1LAQYrsQ4kQ5t36l6pGYzvWrFCGEDaaO4P1AfUxTw8EVrfdvu1jkbSFE8Vn4vkCTEsu6AmuLT4qUUhZ/NQ8Aniz6ewUw62YVrFmzhvXr1wPg5+fHlStXzMuSkpLw9PS0KO/p6UlSUpJFGQ8P02iLq6srOp0Od3d3dDodLi7Xz5/7448/mDJlCvPmzcPZ2bncLOu/X8NPG0xZmrXwIzn5epaU5CTcPSyzuHt4kpKSVKrM9dGhnzdvYn/UXkIXfGHulO6I2ErbgAA0Gg0urq60urc1Z2Jjqe/tc7NmAsCQnWsxAmjl4GAxQlgZtZo1If+Ps2A03tJ6AJ7OziSVGHlLTs/A08ml3DJeLi7oDQZy8vJwsndg66FNBPi1RGOtwVXrSOvGjYm9cAEhoL6bOy5aLQBd7nuA38+dpXf7h26cw9WVK6nXp+mTUlPxLDFSWbKMl5ubKcfVqzhrtQghsC26EMXv7sb4eHlx4fIlWja+B4DTcXHojQb87m5cuTZx9+BKiVGdJF0KniX2gZJl6np4ojfoycnNwdnRNAp8JSWZdyZNYHpwMA28vQE4GnOSmDOn6fHcMxgMBlIzMhjy3jss/WRuBVncuVJi1DopRYene+ks7lxJTqauh4epXXJzcS46beJKSgrvTJzE9LHBNKhvyuLs6EhtOztzp7RHUBA/bgmvRLtUbZbS7xPJyck3fC/x8vJCr9eTk5ODk5NTpdbVarW0adOGffv2cc89pn0nIyODmJgYZs+eXWH7AOhTUtGUGE3WeLijT7nxOebZ23fjMdL0JdbOrzkOnTvh/vorWDk4gJTI/AIyf9xYqboV5d+kU7NGFU/P3ISUsvuNlgkhkoQQ9aSUl4UQ9YDyzh1LBDqXuO8D7AbuK9r+2aJtraGccwxL+9eMCAohOgPdgYCiEb/fALt/up4BAwaYT7Lu3Lkz4eHhSCk5fvw4Dg4O5qneYu7u7tjb23P8uOmcr/DwcIKCggAICgpi8+bNAGzevNn8+JUrVxg9ejQfffQRDRs2vGGW/k8N4KsVYXy1IoxOQZ3ZVpTl5Inj2Ds44FYqi5u7O3Xs7TlZdP7ZtvBwOgSa6jy4L5rV3y5n6uw52NldbzZPLy9+O3wYgLy8PGJPnMC3YaNKtZX+ShIaF2esnBzByopazZuSf/Z8pdYtZte86V+aFgbwa9iIhORkEnU6CvV6In49ROC9lifrB97bms379wGw47dfadusOUIIvFxdOXz6NAB5+fmcOH+eRl51qeviyom4c1wryEdKyaHTp2hUt95Nc7RsfA/xVy6TmJxEob6QrdFRBLVpa1EmqE0bNkXuBmD7/n20bdkKIQRpWZkYjAYALiYlEX/5Cj4lpgF/jt5Lrw6VHw1s1bwZ8YkXuXj5MoWFhWzZuZMuAZanHnTp0IENET8DEBEZSfv7H0AIQVZONm8EB/Puq6/xQCt/c/ln+/Vj19ofiFi1muXz5tPIx6fCTqApS3PiExOvZ9m1ky4dLM856xLQgQ0RESWy3F+UJYc3Pgjm3aGv8kCJ6U4hBEEPBXDo2FEADhw5QuObHEPVJYufnx8JCQkkJiZSWFhIREQEgaWuLg4MDDS/X+zYsYO2bdsihCAwMJCIiAgKCgpITEwkISGBli1bkp6eTnbR6QXXrl3jwIEDNGrUyLy97du306lTJ2rVqtx0/rVTp7H19UZTzws0GrTdO5MbZTkabuNT3/y3fYd2FF5MBODimyOJe3owcU8PJmPtOtJWfKc6gYry12wEBhf9PRjYUE6ZrUCPogtEXIAeRY8lAn5CiOJvdI8AsRVV+G8aEXQC0qWUV4UQzYHSQzQ7gXVCiDlSylQhhGvRqGA08Cym0cDngV8qW2HHjh2Jioqif//+2NnZMWnSJPOygQMHEhYWBsDYsWPNPx/ToUMHOnbsCMDgwYMJDg5mw4YN1KtXz3zV8VdffUVmZiYzZ84ETNM7K1asuGmW9h06ciA6iheeMmV5f/z1LEMHDeSrFaYs744ea/75mHYBHWgfYMoy7+NZFBYUMvrtNwHwa9WK98Z8QP+nBjBz6oe89NwAkJKefR+jcZMmZQOUR0qyd0Ti/H+PI6ysyDt+EkNqGvYd21N4JZmCs+fR1PXEqV8frOxqUatxI+w7tCdtqSmrlaMWK60DhQmJlauvFI21NaOfeY7hCz7FYDTyeEBHGtevz8JNG2jRsCFB995Hvw6dmLh0Mf0njcOxjj3TXxkKwIDAzny4YikDpkxCSngsoANNfEyjoN3uf5DnQ6ZibWVNM19fnux08ylRjbU1Y19+ldenT8VoNNKvc1fu8fXl8zXf4Xd3Yzq3acsTXboxbsE8Hnv7LRwdHJj5jml68UhsLJ+v+Q6NtQYrIRg/9DWcHLTmbUfsi2bB2HG30CYaPhj+DsPGjMZgMPLEo49yz113sWDJN7Rs2owuHTvyZO/eBE+fzqMvDMRJ68jsCRMBWLVuHQmXElm4YhkLV5jOVV40KxQ3F5ebVXnTdvlg+HCGjRmDwWgwZWl0FwuWLKFls6Z06VCUJWQ6jw56ASetltnjTT+Zs2r9OhIuXWLhihUsLDo2Fs2chZuLCyNeG0pwSAgzPvscV2cnpo5+v9pn0Wg0jB49muHDh2MwGHj88cdp3LgxCxcupEWLFgQFBdGvXz8mTpxI//79cXR0ZPp001XbjRs3pnv37jz99NNYW1vz/vvvY21tjU6nY9KkSRiNRoxGI4888ggPl5i+j4iIKPMTNTdlMJI85zO850wHKyuyfoqg4PwFXF95kfxTZ8iN2o/T/z1OnTYPgF6PITuHpGmhld++oiiVMQNYI4R4BbgADAAQQrQB/ielfFVKmSaEmAIUX5X4UfEsqBDiQ2CPEKKwaP0hFVUo/i3/VYoQohawHtNv65wGnIHJwFKgjZRSV/S7OqMBA/CblHKIEKIhsARwB1KAl6SU5Z2QJou/XVclbdGUZGJ61WfxdtGSHDq/qmMA4DlqONk7IisueAdouwWRd/R4VccAoPZ9/hQmXq644B1g413PPEJU1Wx8vKtVlurw3gKm95c/Ov2z5wz+VU32biUzM7PigreZU9HFcSqLpWqY5W9Nxyo39q8ZEZRS5gOPlrOoUYkyy7h+2XXxYxcwnT+oKIqiKIqilPCvOUdQURRFURRF+WepjqCiKIqiKEoNpTqCiqIoiqIoNZTqCCqKoiiKotRQqiOoKIqiKIpSQ6mOoKIoiqIoSg2lOoKKoiiKoig1lOoIKoqiKIqi1FCqI6goiqIoilJDqY6goiiKoihKDaU6goqiKIqiKDWU6ggqiqIoiqLUUEJKWdUZqgvVEIqiKIpSPYmqDvBfpanqANVJdnZ2VUdAq9UCkHb1WhUnAdc6dtWiTcDULtUpS3V4fUC9RjeispRPq9VSEH+xqmMAYNvAh8KLiVUdAxsfbwAyMzOrOAk4OTkBKktpxVmU20NNDSuKoiiKotRQqiOoKIqiKIpSQ6mOoKIoiqIoSg2lOoKKoiiKoig1lOoIKoqiKIqi1FCqI6goiqIoilJDqY6goiiKoihKDaU6goqiKIqiKDWU6ggqiqIoiqLUUKojqCiKoiiKUkOpjqCiKIqiKEoNpf6v4ZuIjo4mNDQUo9FI//79GTJkiMXygoICJk2aRGxsLE5OToSEhFC/fn0AlixZwoYNG7CysmL06NEEBAQApv/PeMqUKZw9exYhBBMnTuTee++tMIuUkk9mzSQ6ai92dnZM+HAKzVq0KFPu1MmTTJk0gfz8fDp07MR7749BCMGObREsXvgFcefPs3jFSlq0bAnAwf37+HzeXAoLC7GxseGtd9+jTbv2t7Ud4uLi+OCDD8zrJyYmMmzYMAYOHMj27dtZtGgR58+fZ9myZfj5+ZVph9DQUKKiorCzs2Py5Mk0b968TDvExsYyefJk8vPz6dixI6NGjUIIQWZmJsHBwVy+fJl69eoxY8YMHB0dOXz4MCNHjsTb2/T/jnbp0oWhQ4eSn5/P0KFDKSwsxGAw0K1bN0aNGlXtXqPS/unXrLx2GDZsmEV9c+bMQa/X/2PHyo2ew8GDB5k7dy5SSmrXrs3kyZPx9fUFYNu2bSxatAhra2saN25Mnz597ti+e/r0aUJCQigoKMDa2poxY8bQqlUri/3jduy7y5cv5+effwZAr9cTFxfHtm3bcHJy4sMPP2Tv3r24uLiwZs2acveVvYcOMvPzzzAYjTz5aG9effa5Mm30wayZnPzjDM6OjsweNwHvunWJ/vUwny7+msJCPTY2GkYOHUb7++8n9+pVBr/3rnn9JF0Kfbt1Z8wbb5Zbv0WWgweZ8dkCDEYj/9e7N68+N7BMluCZMzh5xpQldMJEU5bDh/n0668o1Oux0WgYOWwY7e9/AIDCwkKmzZ/HoaPHsLISvP3yKzwSGFhhFkWpMaSU/6ob0BnoUOL+/4AX/4Fty6ysLPMtPT1ddunSRZ48eVKmpqbKPn36yKNHj1qUWbx4sRw7dqzMysqSa9eulW+++abMysqSR48elX369JE6nU7GxsbKLl26yPT0dJmVlSXfe+89uXz5cpmVlSVTU1NlYmKixTaLpebmWdw2/RwhXxzyktTlXJWR+w7I/k8+WaZMam6e7PfEEzJy3wGpy7kqXxzykty8dZtMzc2Tvx6PkUdiYuUzzw2Uew8eNpeP/vWIPHX+gkzNzZMHj/0uO3TsaF4mpbxt7VCynQMCAuTp06dlVlaWPHbsmPz999/ls88+K/fv32/RLllZWTI8PFwOGTJEZmZmyqioKPnEE09YbK/41r9/fxkVFSUzMzPlkCFD5JYtW2RWVpacMmWKnDdvnszKypLz5s2TU6dOlVlZWXLnzp3y5ZdfLrOdzMxMeeXKFZmVlSXT0tLkE088IX/77bdy276qXqPSmW/Ha1ZeO0RFRVnUFx8f/4/Vd7Pn0L17d3ns2DHzdkeMGCGzsrLkiRMnZN++feXFixellFKePXv2ju67gwYNMu9n4eHh8tlnn70j+27J2+bNm+XAgQPN93fv3i0PHjwoe/XqZc6SfyHBfLt6Lk52DQqSf+4/IHP+PCf79uolT+75xaLMsvkL5Lj3Rsj8Cwly/dJlcvjQ12T+hQR5dMdOmfDrbzL/QoI8sXuP7BQQYLFe8a1fnz4yatNPZR6XUsqChIvmW17cBdk1KEiePXBQ5p47L/v26iVjf9lrUWb5gs/kuBEjZUHCRbl+2XI5/LXXZEHCRXls5y558bejsiDhoozZ84vsFBBgXmfOlKky9MMPZUHCRXntQrxMOhFjsc1iGRkZVX5TWW6apcr7H//V279xargz0KH4jpRyoZRy+T9dSUxMDL6+vvj4+GBjY0OPHj2IjIy0KBMZGUnfvn0B6NatGwcPHkRKSWRkJD169MDW1hZvb298fX2JiYkhJyeH3377jX79+gFgY2ODVqutVJ49kbt4tO9jCCFode+95GRno0tJsSijS0khNzeXVvfeixCCR/s+RuTunQA0uvtuGjZqVGa7zZq3wMPTE4C7G99Dfn4+BQUFt7UdSjp06BDe3t7Uq1cPgLvuuotG5eQsWVfv3r0RQuDv7092djY6nc6yHXQ6cnNz8ff3RwhB79692b17d5msffv2NT9+I0II6tSpA5hGW/R6PUKIcstW1WtU2u14zW7WDsX1+fr6/mP1VfQccnNzAcjJycHDwwOAdevWMWDAABwdHQG4fPnyHd13hRDl5ipZ1+3ed7du3UrPnj3N9x944AFze5Tn+OlTNKjvjW+9+tjY2PBo5y7sio62KLMrOprHe/QA4JHAIA78dgQpJS3uaYKnuzsA9zRqxLWCgjL7ZdzFBNIyMnjQ3/+GGcxZTp2igbc3vvWLsnTpys5SWXZGR9GvKEuPoCAOHCnK0uTGWdb9vMU8smhlZYWLk1OFWRSlJqk2HUEhxHohxK9CiBghxGtFj/USQhwRQhwTQuwQQjTCNAL4nhDiqBDiYSHEZCHEKCFEcyHEwRLbaySEOF7094NCiMii7W8VQtSrKE9ycjJeXl7m+56eniQnJ9+wjEajwcHBgczMzBuum5iYiLOzMx9++CEDBw5kypQp5OXlVap9UpKT8ap7fZseXl6klMqTkpyMp2eJesspczO7tm+nWfMW2NralvscSz6Xkm61HUoq/cFVkZSUFOrWrWu+7+XlddM8xWVSijpkaWlpuBd9YLi5uZGWlmYud/z4cZ577jnefvttzp49a37cYDAwcOBAHnnkEdq3b0/r1q3Lz1ZFr1Fpt+s1K90OxdOet6O+m21zwoQJvPPOO/Tu3Zvw8HAGDx4MQHx8PBcuXODll19mwIAB/PLLL3d03x05ciRz586lT58+zJ07l7feesui/O3cdwGuXbvGvn376Nq1K5WVrNNRt0SH1cvdg6RSndPkVB11PUxfRDTW1jjY25ORlWVRZtsve2hxT5My++WWXbvoFdT5hl+eymbxvJ7Fw51kXUrZMp4VZNmzB78mpixZOTkALFiyhKeHvcaIDyejK9VuilLTVZuOIPCylPJBoA3wthDCC/gK+D8pZWvgaSllHLAQ+ERKeZ+U8pfilaWUpwBbIcRdRQ89A6wWQtgA84Gnirb/DTDtjj2rEgwGA6dPn+app54iLCyM2rVrs3Tp0qqIUsa5s3/y+bxPGTN+wh2rs7CwkD179tC9e/c7VmdJQgjzB1Tz5s3ZtGkTq1atYsCAARbnAVpbWxMWFkZ4eDgxMTGcOXOmSvJWxWtUUul2+PPPP6skR1hYGHPnziU8PJzHHnuMTz75BDAdXwkJCSxatIiPP/6YH3/8kcLCwtuSobx99/vvv2fEiBH89NNPjBgxgilTptyWusFy3y22Z88eWrdujdMdHvH6My6OT77+iknvvldm2c+7d/Fol8p3TP9+lvPM+WoRE98zZTEYDCSlpHBfy5as/XIRrf1aEvrlwjuWR1H+DapTR/BtIcQxYD/gC7wG7JFSngeQUlbma9waTB1Aiv5dDTQDWgHbhBBHgfGAT0Ub8vT0JCkpyXw/OTkZT0/PG5bR6/Xk5OTg5OR0w3WLb8UjKd26dePUqVM3zPD96u948ZkBvPjMANzdPUi6cn2bKUlJ5unCYh6eniQnl6i3nDLlSU5KYuyI95gwZSo+RSfd3852KBYVFUXz5s1xc3O7ab41a9bQr18/Bg4ciLu7O1euXDEvS0pKumme4jLF03Surq7m6TidToeLiwsADg4O5qnPTp06odfrycjIsNiuVqulTZs2/PKL+ftHtXiNSrudrxlcb4d9+/bdtvpu9Hh6ejpnzpwxH0M9evTg999/N9cRGBiIRqPB19eX+vXrEx8ff1vaobx9d/PmzebRuO7duxMTE3NH9t1iERERtzS6DuDp7s6VEqcvJOlS8CoadTSXcXPnSopp5FJvMJCTm4tz0XTzlZQU3p08kenvj8W36CKbYqfPnsVgMNCyadNbyHJ9hDQpRYenu0fZMsk3zvLOxElMHxtMg/qmi76cHR2pbWdH94cfBkzTybF//FGpPIpSU1SLjqAQojPQHQgoGv37DTj6Fza1GhgghGgKSCnlH4AAYopGEO+TUvpLKXtUtCE/Pz8SEhJITEyksLCQiIgIAktdaRYYGMjmzZsB2LFjB23btkUIQWBgIBERERQUFJCYmEhCQgItW7bE3d0dLy8v4uLiANPVj3ffffcNMzz1zLMsX72G5avXENilC1s2b0JKyYnff8fewQH3UucguXt4YG9vz4nff0dKyZbNmwgM6nLT55mdncXI4W/xSAYe6QAAIABJREFUxtvv0Pq+++9IOxSr7LTwgAED2LBhA2FhYXTu3Jnw8HCklBw/fhwHBwfzdJm5Hdzdsbe35/jx40gpCQ8PJygoCICgoCBz1s2bN5sf1+l0xRcfceLECYxGI05OTqSnp5OdnQ2Ypt4OHDhg8ZpVh9eotNvxmpXXDsXnchbXl5CQ8I/Vd6PnoNVqycnJ4cKFCwDs37/fnKNz5878+uuvgGkaNTU1FZ1Od8f2XQ8PD3P9hw4dwtfX947su2A6J/HIkSMWj1VGq2bNuZCYyMXLlyksLGTL7l10DuhgUaZzQAAbIyIA2LYnknb33Y8QgqycHN4c/wHvvjKU+0tcHV0sfNfOWxoNbNW8OfEls+zaSZcOARZlugR0YENRlojISNrffz3LGx8E8+7QV3mgRBYhBEEPBXDomOnj5MCRIzRu2LDSmRSlJhDFH35VGkKIfsCrUsrHhBDNMXUCBwFzgEAp5XkhhKuUMk0IMRJwlFJOKlp3MpAjpQwtun8IOAUcl1LOEkLYAieBQVLKfUVTxU2llDGlYsjiD7pie/fuZc6cORgMBh5//HFeeeUVFi5cSIsWLQgKCiI/P5+JEydy+vRpHB0dmT59Oj4+psHGxYsXs3HjRqytrRk5ciQdO3YE4PTp00ydOpXCwkK8vb2ZNGmSxcncxRePpF29ZhlOSkJnhHAgOopadnaMn/yR+edFXnxmAMtXm34aIjYmhqlFP03yUMeOjBwTjBCC3Tt3MGfmDDLS03HQamnarBmffr6QJV8tYvk3i/FtcP3N8dMvvsDV1Q3XOnZkZ2fflnbIy8ujb9++bNiwAQcHB3Pdu3btYvbs2aSnp6PVamnatCkLFixAq9WSnZ2NlJJZs2YRHR2NnZ0dkyZNMv/EzMCBAwkLCwPg5MmT5p/g6NChA++//z5CCDIyMggODubKlSvUq1ePkJAQnJycWL16NT/88APW1tbUqlWL9957j9atW/PHH38wadIkjEYjRqORRx55hBEjRpR5far6NSrtn37NymuHoUOHWtT36aefUlhY+I/tI+U9h+J9ZOHChVhZWaHVapk4cSI+Pj5IKfnkk0/Yt28fNjY2DB48GHt7+zu27x49epTQ0FAMBgO2traMHTuWFi1a3PZ9F2DTpk1ER0cTEhJisR988MEH/Prrr2RkZODm5sbbb79Nv/aWnas9Bw4w6wvTz8c80fNRXnv+eRYsXULLps3o0qED+QUFBM8I4dTZP3HSapk1bjy+9erz5cpvWfzdKvPoG8CXM2biVjRS2WvQC3w+bTp3N2hQZv8EsG3gQ+HFxFJZ9jPzs88xGA088eijDHv+BRYsWULLZk3p0qGjKUvIdGL/NGWZPX4CvvXr8+W3K/h61SoaeF/PsmjmLNxcXLiUdIXgkBCycnJxdXZi6uj3qVfiPEwbH9M6mZmZ5ea8k4pfT5XFUlGWik80Vf6S6tIRrAWsBxoBpwFnYDJQG5iOaeQyWUr5SNFo3/eAERgOdMOyIzgKmA3cVXROIUKI+4B5gBOm3078VEr5VakYZTqCVeFGHcGqcKNORlUo/jCtDrRabbV4fUC9RjeispRPq9VSEH+xqmMA5XcEq4LqCJavGmZRHcHbpFr8oLSUMh949AaLt5QqewYo+QvMv5RaHgqElnrsKKB+QVRRFEVRFKWEanGOoKIoiqIoinLnqY6goiiKoihKDaU6goqiKIqiKDWU6ggqiqIoiqLUUKojqCiKoiiKUkOpjqCiKIqiKEoNpTqCiqIoiqIoNZTqCCqKoiiKotRQqiOoKIqiKIpSQ6mOoKIoiqIoSg2lOoKKoiiKoig1lOoIKoqiKIqi1FBCSlnVGaoL1RCKoiiKUj2Jqg7wX6Wp6gDVSXZ2dlVHQKvVAhD/0htVnAQaLPm8WrQJmNolIT2rqmMA4OviSMrchVUdAwCPd/7HH516VnUMAJrs3Vqtslx8e0xVxwDAZ95McnbuqeoYADh0DeRyZk5VxwCgnpMDqbnXqjoGbvZ2AJxLSa/iJHC3hwsAmZmZVZwEnJycgOqVRbk91NSwoiiKoihKDaU6goqiKIqiKDWU6ggqiqIoiqLUUKojqCiKoiiKUkOpjqCiKIqiKEoNpTqCiqIoiqIoNZTqCCqKoiiKotRQqiOoKIqiKIpSQ6mOoKIoiqIoSg2lOoKKoiiKoig1lOoIKoqiKIqi1FDq/xouJTo6mtDQUIxGI/3792fIkCEWywsKCpg0aRKxsbE4OTkREhJC/fr1AViyZAkbNmzAysqK0aNHExAQYF7PYDAwaNAgPD09+fTTTwF49dVXuXr1KgBpaWm0bNmSRYsWVZjRrpUfLgOfBitB7p5ossIjLJZre3TFIbAj0mjEmJ1N6jffYkhNMy8XdnbUmzaBvN+Okf7tmkq1i5SS0NBQoqKisLOzY/LkyTRv3rxMudjYWCZPnkx+fj4dO3Zk1KhRCCHIzMwkODiYy5cvU69ePWbMmIGjo6N5vZiYGF5++WWmTZtG9+7dAZg7dy5RUVEYjUYefvhhXnxjOEJY/r/jUko+m/MxB/dFUauWHe9PmESTcnKdORXLrCkfUpCfT7uAjrw5YiRCCJZ8+QXRe/ZgZSVwdnFl9IRJuHt4EB8Xx+ypH/Hn6VO89L/XGfD8oEq1UzGbhr44BHVECEFeTCx5h49aLq9fD/ugDmjc3cjasp2CP8+Zl1lpHdB2C8JK6wBSkrlhC8a/8X8+12nfBo93/gdW1mRt3nLD19whqBP1pk0g/pW3yD/9B7VaNMPr/XdMC4Ug9ZsV5O6J/ss5KpPFqV8fnJ58DIxGjHl5JM+aS0FcPHXaPIDb6y8jNBqkXo/us6/IO3LsL+eo1aIpzk8+jrAS5O47RPb23RbLHbo8jH1AW6TBiDEnl/SwtRjSM7DxrofzgCewsrNDGo1kR+wk77ffb7n+6JgThK75DoM00r/jw7zU81GL5QWFhUxc9g2x8RdwsndgxquvUd/NnUKDnikrlnMqIR6D0UCf9gG83Ks3ANlXrzLl22X8eekSQsCkQUO49+7GFWaRUjL/49nsjzYd22MnTqZp8xZlyp2OjWXGR5PIz8/noQ4dGT5yNEIIvpj3KdG/7MHGxob63j6MmTgZrVZLbMwJQqdPK66EIUNf4+EuXSvM8snsmezbuxc7OzvGfziFZi3KZjl18iRTJ08g/1o+AZ068d7oMQgh2LktgsVffkHc+fN8vWIlLfxaAnD5UiLP/d8TNGzYCICW/v68P25ChVkWzp3DoX37qGVXi5EfTOCeZmXfW/44dYo506eQn59P24AA/vfOCIQQLP/qS/bt3YOVsMLJxYWR4ybg5u5BdlYWn4RM4/Kli9ja1uK94HE0qsTrpCi3y39qRFAIsVsI0abo73AhhPOtrG8wGJg5cybz5s1j7dq1bN26lXPnzlmU2bBhA1qtlvXr1zNw4EDmz58PwLlz54iIiGDNmjXMnz+fGTNmYDAYzOutWrWKu+66y2JbX3/9NWFhYYSFheHv70+XLl0q8yRxGfQMyZ8s4PK4KdRp3wZN/boWRQriL3LloxlcmTiNq4d/w3nAExbLnZ98jPwzf95K0xAVFUVCQgLr1q1j3LhxhISElFsuJCSE8ePHs27dOhISEoiONnUcli5dSrt27Vi3bh3t2rVj6dKl5nUMBgPz58+nffv25seOHTvGsWPHWLVqFatXr+b48eMcO3KkTH0H90WTmBDPsrU/8l7wB8ydNaPcXHNnzWBE8DiWrf2RxIR4Du0z5RrwwiC+WrmKL1eE8VDHTnz7zdcAaB0deXPESJ4e+MIttRMAQqDt3InM9T+RtmI1dk3vwdrVxaKIITuH7G27yD/9R5nVtT26cvXIMdJXrCZ99Y8Y8/JuPUMxKys8RrxJ4qjxXHhhKNruXbBt1KBs5Nq1cX66P3kxsebHCs7FEf/qW8S/9AaJI8fhOfodsP4bbxmVyJK9bRfxg/9H/EtvkL5yLe7DhwFgyMzk0vsTiR/8P5KmzqbuhPf/eg4hcHm6P7qF33Bl+hxqP9gaTV1PiyKFFxNJnj2f5JmfknfsOE79TJ0tWVBI+rerSQqZg+6LxTg/+Riitt0tVW8wGpnxXRjz3nqH7yd+xNZDBzl3+ZJFmfXRe3GsU4cNH03n+a7dmbfuBwC2//orhXo9ayZM5tvg8fz4yx4upeoAmL3mOwL8WvHj5Cl8N24Sd9WtV6k8B6KjuJiQwMof1jMyeDyfzCz/2P5kZgijPpjAyh/WczEhgYNFx1Cbdu1ZsmoN34StxrdBQ8KWLgHgrsaN+XLZChavXMWsefP5eMZ09Hr9TbPsi9rLxfh41mzYxJjxE5kdMrXccrNDpjJ2/CTWbNjExfh49kdHAXB343uYHvoJ9z3wYJl1vH18WPbdGpZ9t6bCTiDAof37uJSQwOLv1vL26GAWhM4qt9yCj2fx9vvBLP5uLZcSEji8fx8A/zfwBb5YtpLPlq6gfYeOhC35BoDVK5bRuEkTvli2klHjJ7Jw7icVZlGU2+lf2xEUQtx0NFNK2VtKmXEr24yJicHX1xcfHx9sbGzo0aMHkZGRFmUiIyPp27cvAN26dePgwYNIKYmMjKRHjx7Y2tri7e2Nr68vMTExACQlJREVFUX//v3LrTcnJ4fDhw/TuXPnCjPa3t0IfXIKhpRUMBi4evBX6tzf2qJM/qkzyIJC099nz6Nxud4ftmnoi5WjlmsnYrkVkZGR9O7dGyEE/v7+ZGdno9PpLMrodDpyc3Px9/dHCEHv3r3ZvXu3ef3iduvbt6/5cYDVq1fTtWtXXF1dzY8JISgoKKCwsNB8cymxvFj0nkge6d0HIQR+rfzJyckmtVSuVJ2Oq7m5+LUy5Xqkdx+i9pheV3t7B3O5vGt5gGnE0cXVleZ+LbHW3PqgucbLE0NmFsasbDAauXbmLLZ3N7IoY8zOxqBLA2m5rrWrC8JKUBh/0fRAoR4q+PC8GbsWzSi8eAn9pSug15O9fTf2nQLKlHMbOpi0lWuQBQXmx2R+PhiMAAhbG5CyzHr/dBZj0Qg5YOpgFdWZ/8dZ86h2wfkLiFq1EDY2fymHbUNf9Cmppu0ZDOQdOUZtfz+LMvl/nEMWmo6hgrh4rJ2dANCn6NCnpJqyZmVjyMnB2sH+luqPiTuPr4cHPh4e2Gg09GjTlt3HLEeMI48dpe9DHQDo9sCDHDx1CiklQkBeQT56g4H8gkJsNNbY29UmO+8qv/15hv4dOwFgo9GgrVOnUnmi9kTSs+gYaunvT052Dqm6FIsyqboUcnNzaFl0bPfs3Ye9kbsBaPtQAJqi48SvVStSkpMAsLOrbX68IL+gzGh+eX7ZvYtefR9DCEGre+8lJzsbXYplFl1KCrm5ubS6916EEPTq+xh7du0EoNHdd9OwUaNKPe+K7P9lD916md7zWrRqRU5ODmml3lvSit5bWrRqhRCCbr16s++XPQDY21/fL65du1b81kJ83HlaP9gGAN+GjUi6fJn0tNR/JLOi/BXVoiMohHhRCPG7EOKYEGKFEOIxIcQBIcRvQojtQgivonKTi5ZHASuEELWFEN8JIWKFEOuA2iW2GSeEcC/6e4QQ4kTR7d0b5UhOTsbLy8t839PTk+Tk5BuW0Wg0ODg4kJmZedN1P/74Y95+++0bvhHu3r2btm3b4uDgUO7ykqxdnDGkpZvv69PSsXZxumF5h8AO5B03dUgRApdn/4+M1T9WWE9pKSkp1K17feTRy8vrpm1TXCal6E08LS0Nd3d3ANzc3EhLSzOvs3v3bp566imLbd177720adOGXr160bNnTx5++GEalhpRBdOHgofn9To9PD3RpSSXKpOMu4dnqTLXP1y++eJznnu8Dzu3/syQ14ZVrkFuwsrBHkN2jvm+8RY6C9bOThjzC3Ds0wPn557CvtNDUIkP0BvReLihT77+XPUpOjQe7hZlajW9BxtPD67uO1hm/Vp+zWiwYhENl31Jcug8c8fwdmUBcHryMRquXoL766+S8unnZZY7dO5E/pk/zR21W2Xt7IQh4/p3RENGJtZONz6G7B9qy7WTp8s8btPAB2GtQa9LK2etG0vOyMDL5fqXGi8XF1IyLL+zpmRk4OViGkXWWFvjULs2Gbk5dHvgQWrb1qLn2FH0GTeGQd174mRvzyWdDhcHLZOXL2HgtI/4aMUy8vLzK5UnJTkZDy/LYyglOaVUmdLHmRcppY5/gPBNG2nXoaP5/skTxxnyzNO8NPAZRowJNncMb5bFy6tUPaWO55SUZDw9S77Xlp+ltMuJiQx+bgBvvPoyR8uZXSgtVZeCu+f19w13T090pTrIOl0K7h4eFmVKdqKXfvkFg558nF0RWxn0ymsA3H1PE6KKOtGnT8aQnHQFXan2VpQ7qco7gkKIlsB4oKuUsjXwDrAXeEhKeT/wHVByHsgP6C6lfA54HbgqpWwBTALKzAcIIR4EXgLaAw8BQ4UQ99/Gp2Thl19+wdXVlRblnOdSLCIigp49e/7jddcJaIdto4ZkbdkOgEPXQPJ+j8GQfksDpf84IYS5U/zxxx8zfPhwrKwsd8WEhATOnz9PeHg4W7ZsYf/+/Rw/+tttyfPy62+wauNPdO3Ziw3fV+6cydvGygqb+nXJ+WUfGd/9gLWTI3Z+zW5ffULgPvw1UhaUf25q/snTxA96jfihw3F94VnTyOBtlvnjJi488xKpCxfjOnigxTLbuxri9vorJM+ae9tzANRpcz82DXzI3mk5M2DlqMV10LOkh6392yOltyImLg4rK8HPM2azaUoI326P4GJKCgajkVMJ8TwV2JmwcROpXasWS7ZuuWO5AFZ8sxhra2se6XX9fEe/Vv4sXb2WL5euYOWypeRXsnP6T3Nz92Bd+FaWrVrD2yNGMXncWHJzcipe8W8aMux1Vvy4kS49erLpx+8BePqFF8nNyebNIYPY+MNaGjdpitXfOeVCUf6m6nCxSFdgrZRSByClTBNC+AOrhRD1AFvgfInyG6WUxSdNBQLzitb7XQhR3lnbnYB1UspcACHEj8DDQJlehaenJ0lJSeb7ycnJeHp6llvGy8sLvV5PTk4OTk5ON1x3z5497Nmzh6ioKAoKCsjJyWHChAlMmTIFgIyMDGJiYpg9e3alGsuQnmFxvpnG1QVDemaZcrX8muHUtxdJM+aYpxZrNb6LWk3vQds10DS1prHGeC2fzO83lFvXypUr+e677wDw8/PjypUr5mVJSUk3bJuSZTyKvi27urqi0+lwd3dHp9PhUjTaERsbywcffGBui6ioKDQaDfHx8fj7+1OnaHrr4Ycf5uTx4/jfdz8bvl9D+Ib1ADRt4WeeigLTiELJ0T8Adw/LUUJTGQ9K69bzUcaNeIfBQ//eqKAxJxdr7fXRXSsHBww5uZVcNwd9SqppWhnT1L5NXa8K1roxfUoqGs/rz1Xj4Y4+5fr0llWd2tS6qxE+803nP1m7ulJ/5odcGjPJ4vzFwgsJGPPysL2rUbnnNf4TWUrL3r4bj5HDLcrXmz6RpKmzKbx0+S9lgKIRQOfrp0tYOzthyCznGGp6D9oeXUmZtxD018/3FXa1cB/2Elk/baUgLv6W6/d0diYp/fooYlJ6Oh7Olqczezg7k5SejpeLK3qDgZy8PJztHfjy4EY6tGyFjbUGV0dHWje+h5PxcTxwT1M8nV3wv+tuALrf/wBLIn6+YYZ1a9ewef06AJr7+ZGSZHkMeXhaHh8enh6ljrMkPEoc/1s2b2Tf3l+Y8/kX5c58NLzrLmrXrs35s2dp7mc5Df/D6u/YuM40S9G8ZUuL95CU5CQ8Sh3PHh6eJCeXfK+1zFIeW1tbbG1tzc/X28eX+PgL5otJim364Xt+3mR6P2zaogW6EiONuuRk3N0t28Xd3cNidkGXnIybe9n3li6P9GTi6BEMemUo9vb2jPjAdI6ilJIhTz9B3freN82vKLdTdf0aMh9YIKX0B4YBJc/Grtwn6l/g5+dHQkICiYmJFBYWEhERQWBgoEWZwMBANm/eDMCOHTto27YtQggCAwOJiIigoKCAxMREEhISaNmyJW+99Rbh4eFs2rSJadOm0bZtW3MnEGD79u106tSJWrVqVSpjwfkL2Hh6Yu3uBtbW1Gn3YJmrFm0a+OA6eCAp877AWGKKMnXRUi6NGs+l0RPIWP0judEHbtgJBHj++efNF7N07tyZ8PBwpJQcP34cBwcH81RvMXd3d+zt7Tl+/DhSSsLDwwkKCgIgKCjI3G6bN282P75x40Y2bdrEpk2b6NatG2PGjKFz587UrVuXI0eOoNfr0ev1HDp0iAZF5/70e2oAX64I48sVYXQM6sy28J+QUnLyxHHsHRxwK5XLzd2dOvb2nDxhyrUt/Cc6BJrqvxh//YM8ek8kvkVXFf4d+qRkrJ2dsHLUgpUVdk0bU3AurpLrpmBVy9Z8AYKtrzf6EqcC3Kprp05j6+uNpp4XaDRou3cmN2q/ebkx9yrn+g4g7unBxD09mGsnY82dQE09L/PFIRovT2wb+lJ4JelGVf3tLAA2PvXNf9t3aEfhxUTANN1ef/YUdF98w7XjJ/9yBjBdTKXxcDN9obK2pvYDrck7bnnOrI1PfVyefZLUr5ZiLNmJt7b+//buPM6m+n/g+Os9MxhmxgxmIUQm2ZXsS7TXt2SplETS8u37VaFEqUQbKSlUtIi+oqiU0kIpZF9KltCe3YwxdrPdef/+OGdWY0Zl7rk/834+HvNozj3nznm73Xvu+3yW94dKt9/C0VXfcWzt+r91/vo1arItIYEdexNJz8hg3upVdGicd5xvh8bnMWe5Mxlj/ndraF6nDiJC5YoVWbVlMwDHUlNZ//tvnBVXhejISOIqVOAP92Zt5ZbN1CpkskjXbjcwado7TJr2Du06XMhc9zO0cX3WZyhvMlMpOoawsHA2up/tuZ99Slv3M7Ri2VLenfo/Rjz/AqGh2aNz2LVjR/bkkN27drH1zz+ofMbxMV13Y/fsSRztL7yIL+Z8gqqyYd06wsLDj7tpi46JISwsjA3r1qGqfDHnEy64sPCJdsnJ+7In7+3Yvp1tW/+katVqxx13zXXX8/KUqbw8ZSqtL+jA/C+ca96mDRsICw+nYr5rS0X32rJpwwZUlflffEarC5zvjB3bcq4tyxYvolqNGgAcPnSIdHdYwxefzKbRuU3yjCc0xt8CoUXwa+BDERmjqkkiUhGIBHa4+3sX8txFQA/gaxFpCDQu4JhvgSki8gzOcN2uQIG1QEJCQhg0aBD33nsvPp+PTp06ER8fz8SJE6lXrx4dOnSgc+fOPPbYY3Tp0oXy5cszYsQIAOLj47n00kvp1q0bwcHBDB48mODg4CL/8fPmzTuuRE2hMjPZN20GsQPvgaAgjny7jPSdu4js0pG0P/7k2Nr1VLjhWoLKlCG67x0AZCQls3fcxJM/RwHatm2bPeElNDSUYcOGZe/r0aMH06dPB+Chhx7KLh/Tpk0b2rZ1xgv17t2bIUOGMHv2bKpUqXLCWcdZLrnkElatWkX37t0RETp06EDrC9ofd1zLNm1ZuXQJt1zflTKhoQx69LHsfXf16sGrU524+g16kOeefJzU1FRatG5Di9bOQPw3XnmJ7Vv/RCSIuMqVGfDgEAD2Je2l7629OXrkCBIkzHr3XSa9OyPP5JITUuXwgsVEdnEG4Kf8uAXfvmTKtWpGxp5E0n7/k5C4GMpffQVBoWUofVYNMls1c0qpqHJ48XKirr0GgIyEvX95Yk8evkwSxrxM1TEjICiIg5/OI+33P6l4+y2kbv7puEQst7KNG1Kh542QkYFmZpLw/HgyDxws1lgir+tEuWbnQ0YGvkOH2fP0aAAir+tEqapnUKnPzVTqczMAO+4bgm//8S15RcrMZP/7s4nuezsSFMSR5avI2L2H8lddRtrW7aRs2ERk56uQ0qWp2MeZNe5L3k/S629Rrkljypx9FkFh5SjXwhmJkjxtJuk7Tr6FMiQ4mMHde3DP+BfxZSqd27Ql/oyqTPhkNvXPrEGHc8+jc9t2DJ0yic6PPUxkuTBGuOPLbuhwEcOnTqHbE4+hCp1at6V2NSehGXzjTTw6+Q3SfRlUjY5heK9bTyqeVm3bsWLpEm6+tjNlQkN5cOjw7H2333wTk6a9A8CAwQ/xzBPDSUtNoUWbtrR0xwKOfW4U6WnpDLynL+B0Bw8c8jDrf1jL9LemEBwSQlCQMGDwQ0RFVTju/Lm1aXcByxYvplvnjoSGhvLI8Cey9/XufgNvvesM3XhgyCM8NWwoqamptG7TltbuJJmFX89nzLPPsD85mQf63UPtc+rw4isTWfvdd7wx4WVCQkohQcLghx+lfCHjQgGat27DqmVLue3G6wkNDeW+hx/N3nf3rb14ecpU5/eBgxjztFs+plVrmrdyJkBNnvgK27duRYKE2LjK3DvoQQC2/fkHzz/1BIhQ46yzGPDQI4X/DzKmmIn6cXzLCYMQ6Q0MAnw4XbYfAi8AyTiJYnNVvVBEhgOHVXW0+7yywGTgXGATUBW4W1VXi8gfQDNV3Ssi9wO3uad7Q1VfLCAMPfQParWdKhEREQBs7dPX40jgzMmvEAivCTivy7bkf5CEnELVK5Qncew/S6xPlZj+/+Hndqd+fOnfUXvx3ICKZXu/B70OA4Bq40Zx+OtFXocBOOOEdx0o/rFxJ6NKZDhJR1K8DoNKYU7r+2+Jf7/l/VSpFeMkygcKGKrgb5FuohxAsfz9WXOmUIHQIoiqvgW8le/h4/osVXV4vu1jQPcT/M2auX4fA4z5p3EaY4wxxpxOAnWMoDHGGGOMKWaWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCWCBpjjDHGlFCiql7HECjshTDGGGMCk3gdwOnKWgSNMcYK6Mz+AAAgAElEQVQYY0qoEK8DCCSHDh3yOgQiIiIA+LndFR5HArUXz2XXgcNehwFAlchwFm/5w+swAGhXpyZHV3/vdRgAlGvWhJ2DhnodBgBnPPckSa9O9joMACrd1Ye9L7/udRgARN99Jwe/mO91GACUv/IStuze63UYANSpHM2OZO+vuVUrONfcfUdTPI4EKpYLBWBrn74eRwJnTn4FgAMHDngcCURGRnodwmnNWgSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooW2s4n6VLlzJ69GgyMzPp0qULt956a579aWlpDBs2jE2bNhEZGcnIkSM544wzAJg8eTKzZ88mKCiIQYMG0bp1a3bv3s2wYcPYt28fIkLXrl256aabAHj11Vf56KOPqFChAgB9+/blX//61z+KP3bI/YS1aYkveT9bb7nrH/2tE1FVxj//HMuXLiE0NJSHHhvOOXXrHXfclk2beOaJYaSmptKqTVvuHTgIEWHCuBdZ+u0iSpUqxRlVq/HgY8OJiIhg186d9L7xeqqfWQOA+g0bMXDIw0XG8s7rE1i/eiWly4Ry24CB1Iivfdxxf/zyM2+OHU16aiqNmrXgpjv/i4iw9bdfmfrKONLT0wgKDqbnf+6h1jl1Wb7gaz7/YCaKElq2LL3+ey/Vz4ovNJYlP6zlualvOe+dCy/mtk6d8+xPS09n6ISX2fTH70SGhzPq3v6cERMLwE9b/+SpSW9w5NgxgkR4+8mnKVO6NHePGkni/mR8vkya1KnLkD63ERz09+/fytQ5m8hOV0OQcHTlGg5/822e/WHt21CuRVPIzCTz8BH2z/wQ3/5Ts9bo8t9/48UFX+HLzOSaRudyS4vWefZ/v30rYxfM59fEBB6/ujMXn1M3e1+7F0YRHx0DQFxEeZ7tcv0/i+WP33lx0ddkqnJNg0b0atYyz/61O7YxdtE3/Lo3kcev7MhFtetk77tg/PPUqhSdE8s1Xf/y+Zdu2sjzs94jM1Pp3KoNt16Wd23xtIx0hr39Fpu3bSMyLIwRvW/njEqVSM/IYMSM6WzatpUgEQZe242mtc/hSEoKd44bk/38hP3J/KtZCwZe263IWFSV18e9yOoVyyhTJpQBQx4h/pw6xx33y5bNjB35NKlpqTRr2Zo7+w1ARLL3fzjjHSa/8hJvz/6U8lFRzHpnGgu/mgeAz+dj+59/MnX2p0SUL19oLC+NGc2KZUsILRPK4KHDOadu3eOO+2nzJkY9OZzU1FRatm7LPfc/gIgwcfxYli1eRKmQUlSpVo0HHx1GeEQEGRkZjB7xJD9v2Ywvw8flV11Nj959inxdXnh2FEuXLCY0NJShjz9JnXrHX+c2//gjTw4bSmpqKm3atuO+wQ8iIsz/ch6TJk7gj99/Z9LUadRr0ACAlcuX8cq4saSnp1OqVCnuGXAfzVq0PO7vnkhow/pU6NENgoQji5Zy8LN5efZHXH4x4e3bopmZZB46RNKbb+NL2pe9X0JDqfL0UI59/wPJb8886fOa05clgrn4fD5GjRrFyy+/TFxcHLfccgvt27enVq1a2cfMnj2biIgIPvroI+bOncv48eMZOXIkv/32G/PmzWPmzJkkJibSt29fZs2aRUhICPfddx9169blyJEj9OrVi5YtW2b/zR49etCrV69T9m84+Nk8DnzwMXGPDjplfzO/FUuXsH3bNqZ98BE/btjAC6NGMmHy/4477oVRI3ng4aHUb9iQBwf0Y+WypbRs05ZmLVpyZ997CAkJ4dXx45g+ZTJ33dsPgDOqVmPStHdOOpb1a1axZ+cORrw6md+2bGbqhPE8Onrccce9PWEcve8eQK06dXnx8UfZ8N1qGjVtzntT3qDTTT1p1LQ561av5P0pkxg84jmi4+IYPPI5wsIjWL9mFW+9PLbAv5vFl5nJM1PeZMKQR4irWImbhz5Mh/ObEl+tWvYxHy34hoiwcD4eM5Yvli1l7DvTGdVvABk+H4++8jJP/vdu6tSowf5DhwgJcT6ao+7tT3i5cqgqD4x9gS9XLOfK1m1O+vXJQ4TIrteQ9NoUfAcOEtPvP6Rs3ExGQmL2Iek7drF37EQ0PZ1yrZtT/uorSJ72z78sfJmZjP56HmOv605sRAS3T5vCBfG1OctNqAAqR5Tn0SuuZvrqFcc9v0xICG/1uu0fx5EVy/MLvuLFrt2IDY/gjhlv0+6s+DyxxEWU55HL/sU7360qOJYevf/R+Z99bwYv9e1HXFQUvZ8fRftGjalVuUr2MbOXLaV82XJ8OPRx5n23mvGffMjIW+/gw2VLAHj3oUfZd+gQ/Se+xFsDHyQsNJTpg3Numno9N5KLGp93UvGsWbGMndu38+q0GWz5cSMTxoxm9MTXjztuwpjR3D3oQerUb8Djgx/guxXLadrKSeYTE/awdtVKYuLiso+/9qabufammwFYuWQxs9+bUWgSCLBi2RJ2bNvG1Pc+ZNPGDbz47EheefOt44574dmRDBzyKPUaNGTIff2zry1NW7Tkzv/eTXBICK+9NI7pb03m3/f0Y+H8r0hPS2PStBmkpKTQp3s3Lr7sCiq7N/EFWbZ4Mdu2buW92Z+wcf16nh3xFJOmTjvuuGdHPMWQocNo0KgR999zN8uXLKF1u3bEx5/NyOdfYNRTT+Y5PjIqiudeHEdMbCy//vIzA/r+l0/mfVXo65JNhAq9biRh9Dh8+/ZT+bEHObp2HRk7d2cfkrZ1O7ufeAZNSyf8oguIuqErSRMmZe+PuvYaUn/65eTOZ0qE075rWESCT/bYjRs3Ur16dapVq0apUqW4/PLLWbhwYZ5jFi5cSMeOHQG45JJLWLlyJarKwoULufzyyyldujRVq1alevXqbNy4kejoaOq6d7RhYWHUrFmThISEU/gvzCvlhw34Dh4qtr8PsGTRQq646mpEhAaNGnH40GGS9ibmOSZpbyJHjhymQaNGiAhXXHU1ixcuAKB5q9bZiU79hg1JTNjzt2NZu2IZbS66FBEhvm49jh45wv59SXmO2b8viWNHjxJftx4iQpuLLuX75UsBEBGOHT0CwLEjR4iqWBGAs+s1ICw8AoBadeqSvHdvoXFs+PUXqsdVplpsHKVCQriiVRsWrFmd55gFa1ZzTfv2AFzaoiUrN25EVVm2fh21zzyTOjWcltCoiIjsVr/wcuUAyPD5yMjIQPj7Sp1ZjYy9Sfj2JYPPx7G16wltkLeFI+3X39H0dOf3P7cTHFX4F/fJ+nH3LqpFVaBqVBSlgoO5tG59vv315zzHVImM4uyYWILkn/wri7Zpz24nlkgnlktq1+Xb337NG0v5SM6OjsnT4nWqbPzzD6rHxFAtOppSISFcdn5TFq7/Ic8xizas4+oWrQC4+NwmrPppC6rK77t30dxtrasYEUF42XJs2rY1z3P/TNjDvsOHaBJ/9knFs2LxYi664kpEhLoNGnLk8CH2JeV9v+9L2svRo0eo26AhIsJFV1zJ8sU5rcmTXhrHrf/pe8LXa9H8r2h/yWVFxrJ00UIuu+oqRIT6DRtx+PAhkvJ99pL27uXokSPUb+hcWy676iqWLFoAQPOWrQh2ry31GjYiMetaK3DsWAq+jAxSU1MoVaoU5cLCCo1l0cJv+FfHaxARGjZuzOFDh9ibmPc6tzcxkSNHjtCwcWNEhH91vIaFC74GoGatWtSoWfO4v1unbj1iYp2egFrxZ5OamkpaWlqRrw1A6Vo1yUhIxJeYBD4fR1euoVyTc/Mck7r5JzTN+Qyn/vo7IRWisveVqlGdoPIRpGzYdFLnMyVDQCWCIvKEiAzItf20iPQXkUEiskpE1onI47n2fyQia0Rko4j8O9fjh0XkeRH5AWgtIs+IyI/u80ef6PwJCQnE5bqjjY2NPS5py31MSEgI4eHhHDhw4KSeu3PnTrZs2ULDhg2zH5s5cybdu3fn8ccf5+DBg3/h1fJOYkJCnjv/mNhYEhMS8x2TSExs7mPici7KuXz2yce0aNM2e3v3zh3c0bMH/e+6k3Xff19kLMlJe6kYE5O9XaFSNPuT8iWCSUlUiM5p7akQHU2y+0XX/Y7/8N7kN3jgtpuZOfl1rr3l+Fanb7/8gkZNmxcaR8K+fcRVqpS9HVexIonJ+/Iek7yPyhWdY0KCgwkvV5b9hw+xddcuBOj7zAhueuQhpnzycZ7n9X1mBJf89y7KhYZyactWhcZRmODy5fN08/oOHCA4MuKEx4e1OJ+UzT+fcP9fkXj4EHEROeeKCY8g8dDJ37CkZWRw27Qp3Dn9fyz85ad/HEtseE4sseHhJB75i7G8O5U7Z0xj0a9//fVJPLCfuKgK2dtxURVIPJC3+z1h/37i3CEjIcHBhIeW5cCRI9SuWo1FG9aR4fOxI2kvm7dvZU9ycp7nzvtuDZc1aXrSSWzS3sTsxASgUkwsSfkSnqTERKJjco6JjonJvvlbvvhbKkXHcNbZxw/JAEhNSeG7lctp0+HCImPZm5hIbGzl7O2Y2Dj2JibkOyaBmJi4fMfkjRfg808+poXbet7h4kspWzaU6zteyU2dO3LDzT0pHxlZaCyJCQnEVc51nrjjr2GJCQnE5rrOxRZwTGG++eor6tStR+nSpU/q+OAKUc6NnCtjXzLBFU787whv34Zj6zc6GyJU6H4d+2fMOun4TMkQUIkg8CZwC4CIBAHdgd1AbaAFcB7QVETau8ffpqpNgWZAPxHJ+iYOA1ao6rnAJqAr0EBVGwNP+esfk9vRo0cZPHgwAwcOJDw8HIDrr7+ejz76iOnTpxMdHc0LL7zgRWiemfrmJIKDg7nsSmdcZKXoaGZ8/ClvvD2dvgPu58mhj3Dk8OFijWHB53O48Y67GP3mNLrfcRdTxo/Js3/zurUs/nIu1/e+vdhi8GX6+P6nLTx99z28+djjfL16FSs2rM/e/8pDD/PlyxNIy8hg1cYNxRZHbmXPP5dS1apyeMFiv5yvKLPu6MubN9/K8Ks6MXbBV2zfn1z0k4rJB33+zZvdezH8yqsZu+gbtu/f77dzd2rZmtjICtzy/CjGzHqfxjVrERSUN+H78rvVXFHEjcupkpqSwvtv/48et91xwmNWLl1MvYaNi+wWPpXenjyJ4JBgLnWvLZs3biAoKJj35nzBtFkfM3P62+zcsd1v8RTkt19/4ZVxL/Lgo0OL5e+Xa92C0jVrcPBzp9s5/OL2HFu3EV+y/96v5v+HgBojqKp/iEiSiDQB4oDvgebA5e7vAOE4ieEinOQva6R2dffxJMAHfOA+fgBIASaJyBxgzonOHxsby549Od2UCQkJxOa6U859TFxcHBkZGRw+fJjIyMhCn5uRkcHgwYO58sorufjii7OPqZSrBalr164MGDCAQPXhezOZ89GHANStX5/EXP/WxIQEYmJj8hwfExuTp8s3MWFPnlaHz+d8zLLF3zLmlQnZLRelS5fOvjOuU68eZ1SrxratW6lbv36ev/31px+zaN7nANSsfQ77crUGJCftJSrX6woQValSnq7d5L17qeCOB1v69ZfcdOd/AWjWtj1Txr+Yfdy2339jyksvMmDYU4QX8SUWW7Eie3K1RO7Zt4+YChXzHlOhIrv3JRFXqRIZPh+Hjx4jKjyC2IqVOL9uPSpEOOdod955bP7jD1o2bJT93DKlS3Nh02YsWLOaVo0aFxrLifgOHiQ4Kqf1IDgyEt+B41vCSteuRfjFHZxxRT7f3zpXfjHhEezJ1QKYePgQMREnbo087vnusVWjoji/2pn8lLCHarla1f5qLAmHc2JJOHyYmLC/EIvbmlg1Moom1arzc+IeqkVFFfGsXM+PjGJPrkR2z/5kYvK1TsVGRbEnOZm4qArOeyXlGJFhYYgI91+bM1Hmthee48xcLVI/7diOLzOTetXPLDSGTz/8gHlznJbn2nXq5WnFSkpMoFJM3s9zpZiYPC1zexMTqRQdw64dO9izayf9b++d/fiAO2/j+YmvU8H9HH47fz7tL7n0hLF89P5MPp39EQB16tUnISFnvFtiwp48LZEA0TGxJCbuyXdMTrxfzPmE5UsWM/qlnGvL/Hlzad7aGZJSoWJFGjY+l582beKMqtXy/O33Z7zLx7OcFrN6DRqwZ3eu8+zJew0DpzckIdd1LqGAYwqSsGcPD91/H0OffIpq1asXeXwWX/J+givmvO9DKlbAl3z8ZK4y9esQ2fFK9jwzBjIynMfiz6LMOWcTcXF7pEwZJCSYzJRUDrw/+6TPb05PgdYiCPAGcCvQB6eFUICRqnqe+3O2qk4SkQuBS4HWbsvf90Co+zdSVNUHoKoZOK2J7wMdgS9OdOL69euzbds2duzYQXp6OvPmzaN9+/Z5jmnfvj1z5ji55Pz582nevDkiQvv27Zk3bx5paWns2LGDbdu20aBBA1SVJ554grPOOouePXvm+Vt7cyUn33zzDfHxhc9K9VLXbjcwado7TJr2Du06XMjczz5FVdm4fj1h4eFUis73xREdQ1hYOBvXr0dVmfvZp7Rt3wGAFcuW8u7U/zHi+RcIDS2b/Zz9ycn43MRj547t7Ni2lTOqVj0ulouv7sTwsRMYPnYCTVq2Yek3X6Gq/Lp5E+XKlSOqYr5EsGIlypYrx6+bN6GqLP3mK85r2Tp735YN6wDYtG4tce7g8aTEBF4Z+QR33DeIyvm+LArSoFY8W3fvZkdCAukZGcxdvpQLmzbNc0yH85vyyaJFAHy1cgXNGzRwxiw2bswv27ZyLDWVDJ+PNZs2UatqVY6mpJDodvtl+Hws/v47ahYyuL0o6dt2EBJdieAKURAcTNnzGpHy4+Y8x4ScUYWo6zqzb8rbZB458rfPlV+9ylXYvn8fOw/sJ93n46vNP9Ku1smNYTuYkkKa+2W2/9hR1u3ckWdix19VN64y2/cnZ8cy/+fNtKt1cp+9/LGs37mDmvneb0Wpf2YNtiYmsCNpL+kZGXz53RraN8yb3F/QsDGfrlwOwNc/fE/z2nUQEVLS0jiWmgrAis2bCAkOzjPJZO6a1Vx+frMiY7i663WMnfQWYye9RcsL2vPN3C9QVTZv3EC5sHAq5nt9K1aKply5MDZv3ICq8s3cL2jZrh014+OZOvtT3pjxAW/M+IDomBhefP3N7CTwyOHDbPjhe1q2u+CEsXS5/gZenzqd16dOp12HC/nys89QVX7ckHVtyRtLpehoyoWF8eMG59ry5Wef0ca9tqxctpQZb/+Pp54bQ2hoaPZzYuPi+H61M2b32LFjbNqwgeo1ah4Xy/U3dud/M2byvxkzaX/RRXw+5xNUlQ3r1hEWHp4n4QSnizwsLIwN69ahqnw+5xPad7io0Nf+0KGDDLz3Hvr268+55zUp9Nj80n7/k1KxsQRHV4LgYMq1aMqx79flOabUmdWo2LsHieMmkHkop0cl6bUp7HzgUXYOGsr+GbM4snSFJYEGCLAWQdeHwBNAKaAHkAE8KSLTVPWwiFQF0oFIIFlVj4pIXaDAwVMiEg6UU9XPRGQJ8NuJThwSEsKgQYO499578fl8dOrUifj4eCZOnEi9evXo0KEDnTt35rHHHqNLly6UL1+eESNGABAfH8+ll15Kt27dCA4OZvDgwQQHB7N27Vo+++wzzj77bHr06AE4ZWLatWvH2LFj+emnnxARqlSpwiOPPPKPX7zKwx+i7HmNCY6KpOast9k3aSoHP537j/9ubq3atmPF0iXcfG1nyoSG8uDQ4dn7br/5puxZvwMGP8QzTwwnLTWFFm3a0tIdCzj2uVGkp6Uz8J6+QE6ZmB++/47Jr04kOCSEoCDh/oceLnIcT+NmLVi/ZhVD7upD6TJluK3fwOx9w/v/l+FjJwDQ8z/3MmnsaNLT0mh0frPsMX+97xnAO69PwOfzUap0aW6522mV/eTdaRw+dIi3J74EQFBwMI+NeemEcYQEB/PgrX3oO2oEmZmZdO5wEfHVqvPK+zOpf1YtLmzajC4XXsSjE16m0/39KR8WzjPuTOnyYeH0/NfV9Bz6CCLQ7twmXNDkfJIO7GfAmOdIT88gUzNpVr8B15/EgPsTyszkwEdzqHRnbwgK4ujK78jYk0DE5ReTtn0nqT9uJrLjFUjp0lTs1R0AX/IB9k05fqbkXxUSFMT9F13OfR/MwKdKx4aNqRUdw+tLFlG3chUuiK/Nj7t3MeTjWRxKSWHxb78wadlipvW+gz/37WXUl3MJEshU6NW81T9KBEOCgrjvwku4f/YH+DIz6digEbUqRfP68sXUja3MBbXOZtOeXQyZM5tDqSks+f1X3lixlGk9+/BnchLPfv0lQSJkqtKzWcu/HEtIcDCDr7uRfhNewpeZSadWrYmvcgYTP/uEetVr0KFRYzq3asOwt6fQ9clhlC9XjqfdoQn7Dh3i3onjCRIhJjKKx3vmnb381do1jL3r7r8UT7NWrVmzfBl39biBMmVC6fdQzuzj/rf3ZuwkZ9buf+4byNhnniYtNZXzW7aiacvWJ/qT2ZZ/u5AmzVsQWrZskccCtGzTlhVLl9Dz+i6EhoYy+NFh2fvu7NWD16dOB2DAoIeyy8e0aN2Glq2da8u4558lPS2dQf2c16B+w4bc9+DDdLn+BkY99Th9broBVLmi4zXE1y54TGOWNu0uYOnixXTr1JEyoaE8OvyJ7H233HgD/5vhzKYfNOQRnnLLx7Rq25bW7doBsODr+YwZ9Qz7k5MZ2O8ezqlThxdfmcj7777L9m1befO113jztdcAeHHCBCqezA1FZib7ps0gduA9EBTEkW+Xkb5zF5FdOpL2x58cW7ueCjdcS1CZMkT3dbrrM5KS2Ttu4sm8/KaEElX1OobjiMhEYL+qPuRu9weyBqEcBnoC24GPgJrAFiAKGK6qC0TksKqGu8+tAszGaS0UYLSqHl+PAPTQXxi8Xlwi3C6wn9tdUcSRxa/24rnsOlC8Y/ROVpXIcBZv+cPrMABoV6cmR1cXPZHFH8o1a8LOQcUzxuivOuO5J0l6dbLXYQBQ6a4+7H35+BIoXoi++04OfjHf6zAAKH/lJWzZXfgMeH+pUzmaHcneX3OrVnCuufuOpngcCVQs57Ribu3T1+NI4MzJrwBw4MCpqSP6T0Q6DQLFW06gBAu4FkF3kkgrILsSqqqOBcYWcHiB1ZezkkD39104XcPGGGOMMSaXgBojKCL1gV+A+ap6aupWGGOMMcaYAgVUi6Cq/gjUKvJAY4wxxhjzjwVUi6AxxhhjjPEfSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooSwSNMcYYY0ooUVWvYwgU9kIYY4wxgUm8DuB0FVBLzHnM3mTGGGOMKVGsa9gYY4wxpoSyRNAYY4wxpoSyRNAYY4wxpoSyRNAYY4wxpoSyRNCcciISLCL3eR2HMcYYYwpnieDfJCLXFvbjcWzlvDy/qvqAm7yMITcRmXoyj/kplv4n81hJIyKlRKSfiLzv/twrIqX8eP7zC/vxVxz5YuoqIpG5tqNEpIsXsbjnLysidbw6f644qonIhyKSKCIJIvKBiFTzKJY4EZkkIp+72/VF5HYvYnHPf66I3OP+nOthHM+KSHn3cz3f/X/V06t4TOGsjuDfJCKT3V9jgTbA1+72RcBSVe3oQUxtgDeAcFU9070Q3KWqfT2I5QWgFDADOJL1uKp+50Es36nq+bm2g4H1qlrf61jcx75X1SZ+jOFFVR0gIp9QQP1MVe3kr1hyxfQGzvvlLfehXoBPVe/w0/m/KWS3qurF/ogjNxFZq6rn5XvMr++VXOe9BhgNlFbVs0TkPOAJj94rXwLTgaybuZ7Azap6mQexfA5MBh5R1XNFJAT4XlUbeRBLf+BOYJb7UFfgNVUd70Esa1X1PBHpCnQE7gcWqapnyak5Masj+Depah8AEZkH1FfVXe52FWCKR2G9AFwBfOzG+IOItPcolqwvsCdyPaaA375QRWQI8DBQVkQOZj0MpAGv+SsON5abgB7AWSLyca5dEcA+f8ZCzhfoaD+ftzDN831JfC0iP/jr5Kp6kb/O9RcU1GPj1TV7ONACWACgqmtF5CyPYolR1cm5tqeIyACPYolW1ZnutQZVzRARn0ex3A60VNUjACIyClgG+D0RxLmpA7gaeE9VD4hYqd5AZYngP1c9Kwl07QHO9CoYVd2W7wPnyUUpEL5YVXUkMFJERqrqEI/DWQrsAqKB53M9fghY589AVHWN+9+F/jxvEXwiEq+qvwKISC08eO+63dH/BbJuoBYAr6pqur9jAVaLyBjgZXf7bmCNB3EApBfwZe5Vd1KS2834jrt9E5DkUSxHRKQS7mshIq2AAx7FIuT9zPjwbqGEj0VkM3AM+K+IxAApHsViimCJ4D83X0TmknNRuhH4yqNYtrndw+p+ofUHNnkRiIjEASOAM1T1XyJSH2itqpP8HYuqDhGRqkANcr3nVXWRH2P4E/gTaO2vcxZFRNritPRkvS6C0w1ay4NwBgHfiMhvbhw1gD4exDEBpzXjFXe7l/uYX7qo87kXGIozvALgS5xk0AsbRaQHECwitYF+ODc3XrgNp5XrBZwEbCnevFcABuL0wMSLyBIgBrjeo1gmAytE5EN3uwvg9+utiAQBnwDPAQdU1SciR4HO/o7FnBwbI3gKuJNDLnA3F6nqh4UdX4xxRANjgUtxvkznAf1V1e93ywE2duYZoDvwIzl3zOrR+KZrgVE4Y0uFnOSrvAexbAbuw2llym5J8OL94sZTBsiajLBFVVM9iOGH/OOYCnqspHEnoD0CXO4+NA94UlVLfCuPe22rg/NZ3uJR63FWLOcD7dzNb1X1e4/i8GQsq/l7LBE0xUJEVqlq89wXhIIGv97IWvkAAA+YSURBVPspli1AYy8SiwJi+QW4RlU9aanNF8sKVW3pcQyFzrBX1VmF7T/VROQ7oFu+Lur380/w8VMs31DwZB4vJq6cpaq/53usuaqu8iCWt3BucPe72xWA51X1Ng9iWQe8C8zIes94EEN5VT0oIhUL2q+q/h6DjIiMxhmfOEstyQh41jX8N4nIYlVtJyKHyHux9rKFZ1wBDx8AVqvqbD+HE0hjZ37D6e7zPBEE9nidBEpOOZRvROQ5nFmG2a+Nn2d2X1PIPiVnBqS/BEoXNcADuX4PBa4DMjyK5QMRuUZVdwC4k9BeBvzewo9zU7c/a0NVk0XEq9ana3CGA80UkUycbvyZqrrVjzFMx5mZu4YCvosAL4Z63IUzUzhDRFLw8HvRFM1aBE8jIvIaUBd4z33oOuB3oBLwm6r6bWadm2yMBxoCG3DHzqiq3yZGiMh4nAthVeBcYD55E55+fowlq+WrA1AZ+ChfLH5LeAKxVEpRRKS3qr5V9JH/6BxBQCucL1RPu6hPRERWqmoLD87bHGfc5DXA+cBIoKOqbvMglh+AC1U12d2uCCz0YthJvrhq44zpvFlVg72MxZi/whLB04iILAfaugWds8aufIszZsTvdfO8HjsjIr0L21/ciUW+WCYXslu96NYqij+Sr5NVUP3FYjpPwIxtytfVFwQ0BcapqidFnUWkNfAqzuzPq1U10aM4bsEpC/UezrXleuBpVfWqSHwNnFbBG3HG2s5Q1ecLf9YpPX+hnwsvardCdpd9bZzW7KxY/DZBz5w8SwRPI+5YuBaqesDdjgRWqmodf33BBdqYL/P3+Sv5Ohl+fP8GzNgmEfkdp0VbcLqEf8cp4rzYjzHkLzpeH6cMUjJ4U3zcjas+OTVJv1bVHz2KYwXOsJP3cBLA3zyIIauFPxRoBvyA855pjDMsyO+VCkTkDpyqFdWAtTgt7csCsbfB2BjB082zwFoRWYBzIWgPjBCRMPxX0iZrzFeBK67g/zFfiMh6jh90fwBYDTzlz1myATaOsyiBVAHWX0lZ1tgmn4gcw8OxTarqVcHm3AKm6Hi+FtLdOGPjsvd5MSkCuEVVt3hw3mxZNVtFZBZwvqqud7cb4pSH8kJ/oDmwXFUvEpG6OOXETACyRPA0oqpZa172wqkfOA/Y7laaH+SnGAJxxZXPcbpssr44ugPlcL5MplD4hIVTLZSCx3GeKyIX+XMc50kIpO4CvySlqhrhj/MUJpBa1XMXHXdrgzZ3N1eqaoK/4nBlTYbIei9kvT/9PilCRHqq6tvA1SJydf79qjrGX7HkUicrCXRj2CAi9TyIAyBFVVNEBBEpo6qbJQDWqTYFs0TwNHKi5nj8uKxbLoG04sql+bo412d1e4r/F0JvTN5xnBPINY7Tz7EUJZBaBJf44yQiIsDNwFmq+qSIVAeqqOpKf5zfVdCNSVYC5MVMakTkBpwCwQvcOMaLyCBVfd9fMeRuIXVbB/OMP/OzMPe/Bd04eHUDtV6cNbvfdrdvxs+rFuWyXUSicCbFfSkiyTgF9U0AskTw9BJIzfGBtOJKsIi0yPoyd2dAZs3q83c5jgpAODmldMKAiupU3w+Y2akuvyRfAG6poeFAW5wv0sU44+GSAFT1Hj+F8gqQiXPz9CRwGKdMSvPCnnQq5WpVH8jxLWAHROQ8VV3rr3hcj+CsB53gxhaD83n2WyKY5QQ3vEuBS/wVg6q+6v76larm+ZyIs2KPF27FWR6xv7u9CGdVHL9T1a7ur8PdMYyRwBdexGKKZong6SVgmuNV9R7Ju+LKa+rRiis4y4O9KSLhOF+qB4E73LGTI/0cSyCM4wQCKvkCpyjvIpyucnBaM2bgrJLjTy3dluLvIbtGXWk/x5ClKc7g/49x3isdcVp4/iMi76nqs36MJShfV3ASzkxmLwTSDe94nHI6RT1WrEQkGJikqjfjLL3nORFpB9RW1cnujUNVnGEwJsBYInh6CajmeHcsk+ezhN3VDxq5s6jJmlXtmunnWCaJyGdAVi24h1V1p/u7X8Zx5hIoyRc43a9P5tp+SkRu9CCOdPdLNasQegxOC6EXquEM/j/sxjIM+BTn5mENzk2Fv3xRQAv/5348f26e3/C6pXTaADEicn+uXeXJ6W3wG7dHoYaIlFbVNH+fPz/3vdoMp3zYZJyZ1W/j3HSaAGOJ4GkkkJrjJQDW1M0a0J3vQo0zDMy/A7pFpK77hZXVUpBViLeyiFT2qNZXoCRfAPNEpDs5ifn1wFwP4hgHfAjEisjTbhxDPYgDnM9O7uEC6UCcqh7z9zACVR0kIteR80XuZQt/INzwlsYZ4hFC3nGCB3HeM174DVgiIh8DR7Ie9GjiSlegCfCdG8NOEfF8IpYpmCWCp6ncs/088izer6lb2IBuf7sf+DdQUKFZxZsJPYGSfAHcCQwAsooCB+MsU3gXfryBUNVpIrIGZ7yZAF08fA9PA1aISFZZoWuA6e4wAr/XzVPVD0TkS9zvDa9KtgTCDa97fV0oIlNUNVAmQfzq/gTh/TUvTVVVRLJa1sOKeoLxjhWUNsVCRJaoqnUDBDBx1skOwymtA27y5f7u99p5Bc0E9fcNjYhMVdVeRT3mx3iakdMKt0RVV3sUx13A4zirimSS08LvxTq2AcNNjLupu/axOKtpvKuqV3gbmbdE5AGcz/JlOOOwbwOmq+p4TwMzBbIWQVNcVovIDDxcUzeLiJyDM3suTlUbikhjoJOqPuVBLOVwWgfPVNV/i7M+aR1VnePvWFQ1IhCSLwiMmaCuBvniCsaZtOEJN/HzJPnL5wGgoaru9TqQABOdlQRC9uSiWC8CccezDsZ5D+f+PHvR25CGM/ntIM44wcdU9UsP4jAnwatZX+b0Vx44ClyO06V1Dc6sRy+8DgzBGWOFqq7DKSrthck4F8k27vYOwO8JKWQnXwtxutWGu/99zItYyJkJ+qe7UkITckrsFDsRGeK2kDYWkYPuzyEgAQi0FV+88CvO59nklSki2fVRRaQm3tURnAZsBs7Cab39A1jlUSyxOC2BNXASQq9Kh5mTYF3D5rQnIqtUtbnkWq9WRNaq6nkexLJaVZvli+UHVT3Xg1jWk1OG47ysMhyqWujKFsUUS9b/o7U4JVxSRWSjqjYo8smnNo6RqjrEn+f8/0BEmuDcxKwgbwt/P8+CCgAiciXwGs4NleCUy/q3qvp9rK2IrFHVpiKyTlUbu4+tUlW/1cDMF4/gNAT0wZlBPBOnxM2vXsRjTsxaBE2xEJFzRGS+iGxwtxuLyKMehbNXROLJKQlyPbCr8KcUmzQRKZsrlnjyzgz1pxRVTXHjKKOqm3G6cbyQfybobLwpfTQna2C7iPQUkTEiUsODOALNqzjrhi/HKV2T9VOiqeoXOEnOFpzSOgOBYx6Fk+7+d5eIXO0m7xULe0JxUqeVabf7k4FTTP99EfFn2SNzEqxF0BQLEVmIUxfv1VwtXxtUtaEHsdTCuWtvAyTjFDW92YvZfiJyGfAoUB9nLei2wK2qusCDWD7EuVsfgDNrORkopapX+TuWfHF1wJ0J6u+aaCKyDjgXZynAKcAbwA2q2sGfcQSa3C3YJscJxrYu82Jcnoh0xFmusjpOUevywHBV/cSDWPoDtwB7cT5DH6lquogEAT+rary/YzInZomgKRYB1h1bBqc0Sk2cO+SDODesT3gQy9s4q0Mcw6n7tSIQBuB7mXwFEslZg/oxYIdbAPw7zbtWdYkjIiNwxpx9Qt6uYb+XjwkkATa84i2gf64ZzBWB0ap6mwexPA68WdDNtojU87ismMnHZg2b4hJI3bGzgf04xU13FnFscZuEM47oMiAe+F5EFqnqWC+DCoC6k4HikIgMAXoBF7gtGKU8jikQ3OT+dwh5J0OU6PIxBMAqJ7k0zjeDeZ/bPex3qjqskH2WBAYYSwRNcbkbpzu2rojswO2O9SiWaqp6pUfnzkNVvxGRRTitCBcB/8Ep9+BpImiy3Qj0AG5T1d3ujNDnPI4pEDyI01p8UESG4qyl+2QRzykJAmGVkyxBIlJBVZMhu0XQvuNNkaxr2BQLyVnWrSzOpKQjOOVA1qjqWj/H8howXlXX+/O8J4hlPk4R52U443kWq2qCt1GZ3NzJIbVV9Su37mOwqh7yOi4vZc1EFZF2OAngaJzacC09Di1geD28QkRuAR4G3nMf6gY8rapTT/wsYywRNMVERKbjzKb7GKesQkecsXE1gfdUtdhnjrnjdxTnrrg2zpi8VHJWRWhc3DEUENMLOAWKU4ElwCKcweVezTQ0uYjInThLAVZU1Xi34PdEVfV3YeuAkjXWV0RGAutVdbpNIAk8IlKfnOUqv1ZVvy9FaP7/sUTQFAu3+/MqVT3sbocDnwJX4rQK1vdDDIWW/fByjVBxFmC/FWfFhsqqWsarWEwOt45hC5xJPFmTnNaraiNvI/OWiMzBKX5+GU638DFgpRf1L40xp5aNHzDFJZa89fHScZZ4OyYifqmb52WidyIicg/OZJGmOLMw38TpIjaBIVVV05xauCAiIXi3UkQguQHnJm60qu4XkSo45aGMMf/PWSJoiss0YIVbGBicJeamu8V6S3J3RSgwBqdVNMPrYMxxForIw0BZt+ZjX5ySKSWaqh4FZuXa3oV3VQCMMaeQdQ2bYiMizXAKJgMsUdXVXsZjTFHccjG34yyNJcBc4A21C6Ux5jRliaAxxhhjTAllXcPGmBIv1wzzAnkxw9wYY/zBWgSNMSVeIM8wN8aY4mSJoDHG5CIicTgrv4BTIsUKfhtjTltBXgdgjDGBQkRuAFbirMpwA87M9+u9jcoYY4qPtQgaY4xLRH4ALstqBRSRGOArK5xsjDldWYugMcbkCMrXFZyEXSeNMacxmzVsjDE5vhCRucA77vaNwGcexmOMMcXKuoaNMSYXEbmOnELo36rqh17GY4wxxckSQWOMMcaYEsrGvhhjjEtErhWRn0XkgIgcFJFDInLQ67iMMaa4WIugMca4ROQX4BpV3eR1LMYY4w/WImiMMTn2WBJojClJrEXQGFPiici17q8dgMrAR0Bq1n5VneVFXMYYU9wsETTGlHgiMtn9VQHJt1tV9TY/h2SMMX5hdQSNMSWeqvYBEJG3gP6qut/drgA872VsxhhTnGyMoDHG5GiclQQCqGoy0MTDeIwxplhZImiMMTmC3FZAAESkItZzYow5jdkFzhhjcjwPLBOR99ztbsDTHsZjjDHFyiaLGGNMLiJSH7jY3fxaVX/0Mh5jjClOlggaY4wxxpRQNkbQGGOMMaaEskTQGGOMMaaEskTQGGOMMaaEskTQGGOMMaaEskTQGGOMMaaE+j+Zj69MEgD3BgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 792x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "corr = df.corr()\n",
    "cmap = sns.diverging_palette(220, 10, as_cmap=True)\n",
    "mask = np.zeros_like(corr, dtype=np.bool)\n",
    "mask[np.triu_indices_from(mask)] = True\n",
    "# 设置matplotlib图\n",
    "f, ax = plt.subplots(figsize=(11, 9))\n",
    "# 画出热图，并校正长宽比\n",
    "sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,annot = True,\n",
    "            square=True, linewidths=.5, cbar_kws={\"shrink\": .5})\n",
    "plt.savefig('pics/Heatmap.png', bbox_inches='tight', dpi=300)\n",
    "#我们可以看到年龄和胆固醇有显著的影响，但与目标阶层的相关性不是很高。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:34:08.739892Z",
     "start_time": "2019-11-25T02:34:08.225412Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyUAAAJMCAYAAADkGAm5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdeXxU9b0//tdn9sxkMtn3BAgEAiQSArIoLhXciuIuF2pFrsu1drm17b23fh+3vbe/tur1Vitqq3WrSAW18sAqeBU3kLBHEvZAAmQj+zJZJpnJLOf3BzBwmCQkMDNnJvN6Ph48zHmfMzPvqCTzms/5fD5CkiQQEREREREpRaV0A0REREREFNkYSoiIiIiISFEMJUREREREpCiGEiIiIiIiUhRDCRERERERKUqjdAMXq7Ozk8uGERERERGFIYvFIs495kgJEREREREpiqGEiIiIiIgUxVBCRERERESKYighIiIiIiJFMZQQEREREZGiwnb1LSIiIiKi0UaSJPT09MDj8SjdyiVRqVSIjo6GEOLCF4OhhIiIiIgoZPT09ECv10On0yndyiXp7+9HT08PzGbzsK7n7VtERERERCHC4/GEfSABAJ1ON6LRHoYSIiIiIiJSFEMJEREREREBAGJjY3H8+PGgvy5DCRERERERKYqhhIiIiIiILonL5bqkxzOUEBERERGFuLKyMlx11VXIzMzEsmXLsHz5cvzud78DAHz66aeYN28esrOzccMNN+DAgQPexxUUFODFF1/EFVdcgezsbCxfvhx2u917/oUXXsCkSZOQl5eHVatWyV7T4XDgP//zP5Gfn4/c3Fw8/vjj6OvrAwBs2bIFU6ZMwfPPP4+JEyfiscceu6Tvj6GEiIiIiCiE9ff347777sPSpUtx4sQJ3HXXXVi/fj0AYO/evfjRj36E559/HidOnMADDzyAJUuWwOFweB+/bt06rF27Fnv37sXBgwexevVqAMAXX3yBF198EevWrcO3336LzZs3y173v//7v1FZWYktW7Zgz549qK+vxzPPPOM939TUhI6ODuzfvx8rVqy4pO+RoYSIiIiIKITt3r0bbrcbjz76KLRaLRYtWoQZM2YAAFauXIkHHngAM2fOhFqtxtKlS6HX67F7927v4//lX/4FaWlpiIuLw0033YT9+/cDOBVWvve9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\n",
      "text/plain": [
       "<Figure size 864x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "df_melt = pd.melt(frame=df, value_vars=['height'], id_vars=['gender'])\n",
    "plt.figure(figsize=(12, 10))\n",
    "ax = sns.violinplot(\n",
    "    x='variable', \n",
    "    y='value', \n",
    "    hue='gender', \n",
    "    split=True, \n",
    "    data=df_melt, \n",
    "    scale='count',\n",
    "    scale_hue=False,\n",
    "    palette=['lightgreen', 'dodgerblue']);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:16.833395Z",
     "start_time": "2019-11-25T02:35:15.195947Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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th9wBvAXM6tMLzOgDlgXRDwiIpJsQbXcKoF7zKyUVEL9pbs/bmZPmNlowIA1wCUBxSMiIgkW1NWSa4HJvSyfEcTxJf8Gcwl+X+tHrZtQRJJDzwAREZFerVq1qmTEiBFXl5eXH0t0Z7Tq3LNnz/pdu3b9YMqUKZ1dC5XcRESkVyNGjLh69OjRnxs+fHjnwGuHp729/UNbt24FuLFrmZKbiLzPYLudg9ifurGDV15efmzUExvA8OHDO9Oty32U3CQng7kE/9hjj+X6668vdEgikn9R7YrsTUmfBZFCUGITkaApuYmISMHccccdo0455ZRJQR9X3ZIiMqBbbw1+foWvf/2EwI8pyaGWm4iIJI6Sm4iIDNm8efPGHnfccSdUVlZOrqmpOf7++++v6G291atXj/j4xz9eXVVVVTNx4sQPz507dyxAW1ubzZkzp+roo48+8eijjz5xzpw5VW1tbZZrPEpuIiIyZEcddVT7b3/725c2bdq0+vLLL3/z8ssvn/jGG2+UZ67T2tpact55533w1FNPfeell1768+rVq5+fMWPGuwDz5s2rXLNmzQErVqx4ceXKlS+uXbv2gLlz51bmGo+Sm4iIDNkFF1zQMmHChD2lpaXMnj27paqqqr2hoeGAzHWWLFlSMWrUqI7rrrvurf33398rKio6p0+fvhPg0UcfPeSKK65oPvzwwzsqKys7rrzyyjcfeeSRUbnGowtKRERkyO68885Rd91112HNzc3DAN57773Sbdu2lZWWlnrXOps2bSqvqqra1dv227ZtGzZx4sT2rvLEiRN3b9u2rby3dbMxYHIzsxWA97eOu0/PNQAREYm3V155Zdj1119/xAMPPPDyKaecsqOsrIyPfvSjx/Vcb/z48Xsee+yx4b3t49BDD9392muvDZ88efIugI0bNw479NBD9+QaUzbdkj8FfjbAS0REitSOHTtKzIwxY8bsAVi4cOGov/71r/v1XG/mzJmtb7/9dvlNN900pq2tzVpbW0uWL19+AMBZZ531twULFlQ2NzeXbd68ueyWW26pPPvss9/ONaYBW27ufk+uOxcRkeSrqanZNXv27Lc++clPHltSUuJnn3322x/+8Id39FyvoqKi88EHH3z56quvnnDrrbcePmzYMJ89e/Zb06dP3zl37tzmK6+8svTkk08+DuDMM89smTt3bnOuMWXTLXnhQOu4+725BpAE+Z5kNh/71CSz8RTFCYtFsnHzzTc33XzzzU29vXfJJZfsa4F95CMf2fX73//+5Z7r7L///n777be/AbyRj3iyuaDkbuAVYDOpJ2b35EBRJzcREYmWbJLbj4HPAu+SSmL17t7e/yYiIiLhGfCCEne/HDgCuB04F9hgZneZ2cmFDk5ERCQXWd3n5u57gV8Dvzazg4HrgT+Y2RnuvqyQAcaRJpmVfKmvD/5i5Lq6iwI/pki+ZX0TdzqpfR6YDYwGvgusKVBcIiIiOcvmaslPAxcCJwOPAFe5+x8LHZiIiEiusmm5PQK8BCwC2oAzzezMzBXc/VsFiE1ERCJi1qxZUwqx30WLFq0qxH6zmaHkXuDfgUOBqj5eIiIiBVFfX/+BE0888YTjjz/+hHnz5o3NZptsZij5Ys9lZjaGVDflendfP9A+zGwEsBwYnj7mQ+7+bTObCDwAjAJWARe4++5sAhcRkeDl6yKnbC9c6ujo4LrrrpuwZMmSl4844og9J5988rHnnHNOa01NTa8TMHfJZsxtHHArcBzwFHALqUS1F6gwswvd/YEBdtMOzHD3HWZWDqw0s98A/wQscPcHzOwO4CJg4UAxiYjESRRnMYJ4zGS0cuXKAyZMmNA+adKk3ZCag7K+vr6ipqZmc3/bZdMteQfQAlxOaoaS/wf8D3cfQ+rm7usG2oGndM0zVp5+OTADeCi9/B6gLot4RESkSGzatGlYZWXlvh69cePG7d68efOwgbbL5oKSqUClu+82syeBVqAewN0fMbOspt4ys1JSXY/HALcBfwVa3b2j6xyAcX1t39jYmM1hhiyo4xRalM4jKrEUMo7a2tpBbxOVzyUuovJ5RSWOfOjvXHKp01GSTXIr7xoHc/f3zGyHu2c+3623+SbfJ30jeI2ZVQBLgP80mECrq6sHs3rOgjpOoUXpPKISS1Ti6BK1ePoThUkCovJ5RSWOfIjDuYwfP3531wNQAZqamoaNHTt2wGszskluZWZ2Gn9PYj3LpYMJ1N1bzWwZ8F9IjdmVpVtv44FeZ5QWEclVFJ+0EMYsRpCfLylBz2Azbdq0na+//vqIl19+ediECRP2PP7444fcddddrw60XTbJbQvw84zy2z3KWwbagZmNBvakE9t+wBnATcAy4DxSV0zOJnVPXdaiOkgrIiL5UV5ezvz581//zGc+88G9e/fy2c9+dlvX07r7k82tAEfmIb5K4J70uFsJ8Et3f9zMXgQeMLP5wGr0VG8RkUgq1M3W2Tj33HO3n3vuudsHs03Wc0sOhbuvBSb3svxV4KQgYhCR3GkycImbQJKbiEhU6EkLxSFRyS2MSguquCIiUZPNTdwiIiKxouQmIiKJk6huSRERKYy4PfJGyU0iKYr3MMZhklmRpJk9e/aRTz755MGHHHJIx3PPPfdCttspuYmISNbydVtItrd6zJo1a9sll1yyZc6cORMHs38ltwKI8/05UWwxiUjxOuOMM3Y0NjYO+BSAnpTcRCJMt5mI5EbJTWJBM2SIyGDoVgAREUkctdwKIEmtDE1VJCKZ4tKjoeQmEmH6cpFMcUkQUXD++edPfPbZZw9qbW0tq66uPvGyyy57c86cOdsG2k7JTUREBhTWI28WL178Wi7bacxNREQSR8lNREQSR92SIlJUojCmGMZFZ5DTWF9nIeIokG6xquUmIiK92rNnz/r29vbI54n29vaSPXv2rM9cppabiIj0ateuXT/YunUr5eXlxxLdxlDnnj171u/atesHmQuV3EREpFdTpkzpBG4MO45cJCq5RaEvXSSJknRflu4dLA5RbWaKiIjkTMlNREQSJ1HdkpJcSeoWE5HCCyS5mVkVcC9wGODAne7+YzObC3wF2Jpe9Tp3/7+5HieMvnRIdn96ks9NsrNo0aJBb9PzAbW57ENkKIJquXUAV7j7c2Z2ELDKzH6Xfm+Bu98SUBwiIlIEAklu7t4MNKd/ftfM1gPjgji2iEjUqJu98AIfczOzI4HJwNPANOBSM7sQeJZU666lt+0aGxuDCnHIolBx4/R5ZSMKz8jr7zOtra0d9P7j8n+Ujzjjcq7FJt91OkoCTW5mdiDwK+Ayd3/HzBYC3yU1Dvdd4P8AX+5t2+rq6sDiTIJ8fV66J+jv8l0Hs9lfFD6LfJy3fn+jKcn/L4HdCmBm5aQS233u/jCAu7/l7nvdvRO4CzgpqHhERCS5grpa0oCfAevd/YcZyyvT43EAM4FwpsoWkaIRhdawrkAtvKC6JacBFwDPm9ma9LLrgC+YWQ2pbskNwMUBxVNQqrgiIuEK6mrJlYD18lbO97SJJNFQv9ToS5JIiqbfEhGRxEnU9FtR6EsXkWhRa7g4JSq5Sf7pC4OIxJGSm8RCFG6MF5H40JibiIgkTqxbbvno+1Z/uohI8sQ6uUn+ReULQ899iIgMhpKbRFJUkqyIxJPG3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHECSW5mVmVmy8zsRTN7wcy+kV5+iJn9zswa0/+ODCIeERFJtqBabh3AFe5+HPAxYI6ZHQd8E1jq7tXA0nRZRERkSAJJbu7e7O7PpX9+F1gPjAPOAe5Jr3YPUBdEPCIikmxlQR/QzI4EJgNPA4e5e3P6rc3AYUHHIyK5mzVr1pDXW7RoUb7CEdkn0ORmZgcCvwIuc/d3zGzfe+7uZuZ9bdvY2BhAhMEdZyBRiSMfonIuhYyjtrZ20NsE8blE5bPvTxxizBSVeAsdRy51OkoCS25mVk4qsd3n7g+nF79lZpXu3mxmlcCWvravrq4OIszAjjOQqMSRD1E5l6jE0SWIeKJ2zr2JQ4yZohJvVOKIqqCuljTgZ8B6d/9hxluPArPTP88GHgkiHhERSbagWm7TgAuA581sTXrZdcCNwC/N7CJgI/C5gOIRkTzQeJlEVSDJzd1XAtbH26cHEYOIiBQPzVAiIiKJo+QmIiKJo+QmIiKJE/hN3MVuqDe9agBfRGRgSm4iIhGiL8D5oW5JERFJHLXcJNay/Zbb37r6piuSPEpuAdMfUhGRwlNyExGJEH0Bzg+NuYmISOKo5Saxpm+5ItIbc+/zEWqh2759e8GD63mRgf5YZmcwF3L0JUmf9cEHH9zX3Knd5KtO6/PPv6F+pkn7PLOt01GlbkkREUkcJTcREUkcJTcREUkcjblpzC3vehu7SPrnGvSYm0ihxX3MrWiultR8bcE56qijePXVV/eVjznmmBCjEZFipG5JybuNGzd2K7/22mshRSIixUrJTfKuZ1d3lLu+RSSZlNwk78aMGdNvWUSk0IpmzE1jZsFpbW3ttywiUmhquUneTZs2DbPUhVZmxrRp00KOSESKjZKb5F1dXR1lZalOgbKyMmbOnBlyRCJSbJTcJO9GjhzJ9OnTMTOmT59ORUVF2CGJSJEJJLmZ2c/NbIuZrctYNtfMmsxsTfr1ySBikWDU1dUxadIktdpEJBSBzFBiZtOBHcC97n5CetlcYIe739LXdprNQeJCM5RI0sR9hpJAWm7uvhz4WxDHEhERCftWgEvN7ELgWeAKd2/pa8XGxsbgohIZpNra2kFvozotUZZLnY6SwCZONrMjgcczuiUPA7YBDnwXqHT3L2duoy4ciQt1S0rSqFsyR+7+lrvvdfdO4C7gpLBiERmq7du3uxKXJEnc63Royc3MKjOKM4F1fa0rIiIyGIGMuZnZ/cCpwKFmtgn4NnCqmdWQ6pbcAFwcRCwiIpJ8kX5YqYiISC40Q4mIiCSOkpuIiCSOklse9Da9mOTOzKrMbJmZvWhmL5jZN8KOqZioPuef6nTwNOaWB71NLya5S19JW+nuz5nZQcAqoM7dXww5tKKg+px/qtPBU8stDzS9WH65e7O7P5f++V1gPTAu3KiKh+pz/qlOB0/JTSItPbPNZODpcCMRyQ/V6WAouUlkmdmBwK+Ay9z9nbDjERkq1engKLlJJJlZOak/Ave5+8NhxyMyVKrTwVJyk8gxMwN+Bqx39x+GHY/IUKlOB0/JLQ/S04s9BUwys01mdlHYMcXcNOACYIae1B481eeCUJ0OmG4FEBGRxFHLTUREEkfJTUREEkfJTUREEkfJTUREEkfJTUREEkfJTboxMzezY8KOQyQfVJ+Ll5KbiIgkjpKb5IWZlYUdg0i+qD7Hn5JbTJjZR8xstZm9a2YPmtliM5uffu+s9IwHrWbWYGYnZmy3wcyuNLO1ZrY9vd2IjPevMrNmM3vTzL7c45jDzewWM3vdzN4yszvMbL/0e6emZ6+4xsw2A78I6KOQBFB9lkJTcosBMxsGLAHuBg4B7gdmpt+bDPwcuBgYBfwr8KiZDc/YxeeATwATgROBL6a3/QRwJXAGUA381x6HvhH4IFADHEPq+VPfynh/bDqeI4Cv5uFUpQioPksQlNzi4WNAGfATd9+TnlH8mfR7XwX+1d2fdve97n4P0J7epstP3P1Nd/8b8BipX25I/ZH4hbuvc/edwNyuDdITvX4VuNzd/5Z+wOI/A5/P2G8n8G13b3f3tnyftCSW6rMUnPqV4+FwoMm7TwT6RvrfI4DZZvb1jPeGpbfpsjnj5/cy3juc1OPuu2zM+Hk0sD+wKvV3AQADSjPW2eruuwZxHiKg+iwBUHKLh2ZgnJlZxh+EKuCvpP4ofM/dv5fjfqsyyhMyft4GtAHHu3tTH9tr1m3JheqzFJy6JePhKWAvcKmZlZnZOcBJ6ffuAi4xs/9sKQeY2afM7KAs9vtL4ItmdpyZ7Q98u+sNd+9M73uBmY0BMLNxZnZmPk9MipLqsxScklsMuPtu4FzgIqAVmAU8DrS7+7PAV4B/AVqAV0gPsGex398APwKeSG/3RI9Vrkkv/3czewf4PTBpiKcjRU71WYKg57nFlJk9Ddzh7rpkWWJP9VnyTS23mDCzU8xsbLobZzapS6B/G3ZcIrlQfZZC0wUl8TGJ1JjCAcCrwHnu3hxuSCI5U32WglK3pIiIJI66JUVEJHGU3EREJHGU3EREJHGU3EREJHGU3EREJHH+A6hHkR1DXxknAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 445.575x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#计算身体质量指数(BMI):\n",
    "df['BMI'] = df['weight']/((df['height']/100)**2)\n",
    "sns.factorplot(x=\"gender\", y=\"BMI\", hue=\"alco\", col=\"cardio\", data=df, color = \"yellow\",kind=\"box\", aspect=.7)\n",
    "plt.savefig('pics/BMI.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:28.597533Z",
     "start_time": "2019-11-25T02:35:28.584795Z"
    }
   },
   "outputs": [],
   "source": [
    "def feat_select(threshold):\n",
    "    abs_cor = correlations.abs()\n",
    "    features = abs_cor[abs_cor > threshold].index.tolist()\n",
    "    return features\n",
    "def model(mod,X_tr,X_te):\n",
    "    mod.fit(X_tr,y_train)\n",
    "    pred = mod.predict(X_te)\n",
    "    print('Model score = ',mod.score(X_te,y_test)*100,'%')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:33.549320Z",
     "start_time": "2019-11-25T02:35:33.503467Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "id             0.004723\n",
      "age            0.237391\n",
      "gender        -0.004828\n",
      "height        -0.030766\n",
      "weight         0.158004\n",
      "ap_hi          0.428547\n",
      "ap_lo          0.321554\n",
      "cholesterol    0.216638\n",
      "gluc           0.085880\n",
      "smoke         -0.023463\n",
      "alco          -0.014739\n",
      "active        -0.038563\n",
      "years          0.236911\n",
      "BMI            0.171964\n",
      "Name: cardio, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# correlations with target class\n",
    "correlations = df.corr()['cardio'].drop('cardio')\n",
    "print(correlations)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:34.532665Z",
     "start_time": "2019-11-25T02:35:34.505609Z"
    }
   },
   "outputs": [],
   "source": [
    "# 切分数据集\n",
    "msk = np.random.rand(len(df))<0.85\n",
    "df_train_test = df[msk]\n",
    "df_val = df[~msk]\n",
    "\n",
    "X = df_train_test.drop('cardio',axis=1)\n",
    "y = df_train_test['cardio']\n",
    "X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.2,random_state=70)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.173178Z",
     "start_time": "2019-11-25T02:35:34.703521Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Threshold is 0.001\n",
      "Model score =  72.06256109481916 %\n",
      "Threshold is 0.002\n",
      "Model score =  72.06256109481916 %\n",
      "Threshold is 0.005\n",
      "Model score =  72.19941348973607 %\n",
      "Threshold is 0.01\n",
      "Model score =  72.19941348973607 %\n",
      "Threshold is 0.05\n",
      "Model score =  71.99413489736071 %\n",
      "Threshold is 0.1\n",
      "Model score =  71.87683284457478 %\n"
     ]
    }
   ],
   "source": [
    "# 逻辑回归\n",
    "lr = LogisticRegression()\n",
    "threshold = [0.001,0.002,0.005,0.01,0.05,0.1]\n",
    "for i in threshold:\n",
    "    print(\"Threshold is {}\".format(i))\n",
    "    feature_i = feat_select(i)\n",
    "    X_train_i = X_train[feature_i]\n",
    "    X_test_i = X_test[feature_i]\n",
    "    model(lr,X_train_i,X_test_i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.187712Z",
     "start_time": "2019-11-25T02:35:39.176868Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['id', 'age', 'gender', 'height', 'weight', 'ap_hi', 'ap_lo',\n",
       "       'cholesterol', 'gluc', 'smoke', 'alco', 'active', 'cardio', 'years',\n",
       "       'BMI'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.296900Z",
     "start_time": "2019-11-25T02:35:39.191757Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['id', 'age', 'gender', 'height', 'weight', 'ap_hi', 'ap_lo',\n",
       "       'cholesterol', 'gluc', 'smoke', 'alco', 'active', 'years', 'BMI'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.419684Z",
     "start_time": "2019-11-25T02:35:39.302724Z"
    }
   },
   "outputs": [],
   "source": [
    "#标准化\n",
    "scale = StandardScaler()\n",
    "scale.fit(X_train)\n",
    "X_train_scaled = scale.transform(X_train)\n",
    "X_train_ = pd.DataFrame(X_train_scaled, columns=X_train.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.505692Z",
     "start_time": "2019-11-25T02:35:39.422674Z"
    }
   },
   "outputs": [],
   "source": [
    "scale.fit(X_test)\n",
    "X_test_scaled = scale.transform(X_test)\n",
    "X_test_ = pd.DataFrame(X_test_scaled, columns=X_test.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.640926Z",
     "start_time": "2019-11-25T02:35:39.510471Z"
    }
   },
   "outputs": [],
   "source": [
    "# optimum k with optimum threshold\n",
    "# for i in threshold:\n",
    "#     feature = feat_select(i)\n",
    "#     X_train_k = X_train_[feature]\n",
    "#     X_test_k = X_test_[feature]\n",
    "#     err = []\n",
    "#     for j in range(1,30):\n",
    "#         knn = KNeighborsClassifier(n_neighbors=j)\n",
    "#         knn.fit(X_train_k,y_train)\n",
    "#         pred_j = knn.predict(X_test_k)\n",
    "#         err.append(np.mean(y_test != pred_j))\n",
    "\n",
    "#     plt.figure(figsize=(10,6))\n",
    "#     plt.plot(range(1,30),err)\n",
    "#     plt.title('Threshold of {}'.format(i))\n",
    "#     plt.xlabel('K value')\n",
    "#     plt.ylabel('Error')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:39.744782Z",
     "start_time": "2019-11-25T02:35:39.650538Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['age', 'weight', 'ap_hi', 'ap_lo', 'cholesterol', 'gluc', 'years', 'BMI']\n"
     ]
    }
   ],
   "source": [
    "# final feature selection with threshold 0.05\n",
    "feat_final = feat_select(0.05)\n",
    "print(feat_final)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:41.592474Z",
     "start_time": "2019-11-25T02:35:39.751542Z"
    }
   },
   "outputs": [],
   "source": [
    "#knn\n",
    "X_train = X_train_[feat_final]\n",
    "X_val = np.asanyarray(df_val[feat_final])\n",
    "y_val = np.asanyarray(df_val['cardio'])\n",
    "\n",
    "scale.fit(X_val)\n",
    "X_val_scaled = scale.transform(X_val)\n",
    "X_val_ = pd.DataFrame(X_val_scaled,columns=df_val[feat_final].columns)\n",
    "# knn with k=15\n",
    "knn = KNeighborsClassifier(n_neighbors=15)\n",
    "knn.fit(X_train,y_train)\n",
    "pred = knn.predict(X_val_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:43.292136Z",
     "start_time": "2019-11-25T02:35:41.595337Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       0.71      0.75      0.73      4595\n",
      "           1       0.72      0.68      0.70      4397\n",
      "\n",
      "    accuracy                           0.71      8992\n",
      "   macro avg       0.71      0.71      0.71      8992\n",
      "weighted avg       0.71      0.71      0.71      8992\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#混淆矩阵热图\n",
    "cm=confusion_matrix(y_val,pred)\n",
    "cm_matrix = pd.DataFrame(cm, columns=['true', 'false'], index=['postive', 'negative'])\n",
    "plt.figure(figsize=(7,7))\n",
    "sns.heatmap(cm_matrix, annot=True, fmt='d', cmap='YlGnBu')\n",
    "plt.savefig('pics/KNN-CM.png', bbox_inches='tight', dpi=300)\n",
    "print('\\n',classification_report(y_val,pred))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-25T02:35:45.213404Z",
     "start_time": "2019-11-25T02:35:43.294877Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       0.70      0.80      0.75      4595\n",
      "           1       0.75      0.65      0.70      4397\n",
      "\n",
      "    accuracy                           0.72      8992\n",
      "   macro avg       0.73      0.72      0.72      8992\n",
      "weighted avg       0.73      0.72      0.72      8992\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Logistic regression\n",
    "lr.fit(X_train,y_train)\n",
    "pred = lr.predict(X_val_)\n",
    "\n",
    "#混淆矩阵热图\n",
    "cm=confusion_matrix(y_val,pred)\n",
    "cm_matrix = pd.DataFrame(cm, columns=['true', 'false'], index=['postive', 'negative'])\n",
    "plt.figure(figsize=(7,7))\n",
    "sns.heatmap(cm_matrix, annot=True, fmt='d', cmap='YlGnBu')\n",
    "plt.savefig('pics/LR-CM.png', bbox_inches='tight', dpi=300)\n",
    "\n",
    "print('\\n',classification_report(y_val,pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
